diff --git a/R/metfrag.R b/R/metfrag.R
index cae013e2f096fc31dbb8a0e0a6d666c1baeb4527..cfab5a13900c8f06abca87450e45a791ed3f79ed 100644
--- a/R/metfrag.R
+++ b/R/metfrag.R
@@ -89,7 +89,7 @@ metfrag_run <- function(param,path,subpaths,db_file,stag_tab,ms2,runtime,java_bi
 
 mf_narrow_summ <- function(summ,kv,ms2_rt_i=NA_integer_,ms2_rt_f=NA_integer_) {
     skey = data.table::key(summ)
-    cols = c("adduct","tag","ID","CE","an","mz","qa_pass","ms2_rt")
+    cols = c("adduct","tag","ID","CE","scan","mz","qa_pass","ms2_rt")
     nsumm = get_rows_from_summ(summ,kv,cols)
     nsumm = nsumm[qa_pass==T] # Those that make sense.
     nsumm_key = union(SUMM_KEY,"ms2_rt")
@@ -109,13 +109,13 @@ mf_narrow_summ <- function(summ,kv,ms2_rt_i=NA_integer_,ms2_rt_f=NA_integer_) {
 get_metfrag_targets <- function(stag_tab,ms2) {
     ## Take the columns we need from summ.
     x = summ[ms2_sel==T,.SD,.SDcols=c(key(summ),"mz")]
-    mrg_keys = c(intersect(key(ms2),key(summ)),"an")
+    mrg_keys = c(intersect(key(ms2),key(summ)),"scan")
     x=ms2[x,.(CE=CE,ion_mz=i.mz,mz,intensity),on=mrg_keys,by=.EACHI]
     ## Get column order so that `an' follows `CE'.
-    resnms = setdiff(mrg_keys,"an")
-    nms = union(union(resnms,"CE"),c("an","ion_mz","mz","intensity"))
+    resnms = setdiff(mrg_keys,"scan")
+    nms = union(union(resnms,"CE"),c("scan","ion_mz","mz","intensity"))
     data.table::setcolorder(x,neworder = nms)
-    setkeyv(x,unique(c(resnms,"CE","an")))
+    setkeyv(x,unique(c(resnms,"CE","scan")))
     x
     
 }
diff --git a/R/mix.R b/R/mix.R
index 105b02550655300756fa91d6bbde59f08e6f19d4..3846cff9b1638ffd641ff6ebbf348f98eb66d988 100644
--- a/R/mix.R
+++ b/R/mix.R
@@ -191,7 +191,7 @@ gen_empty_summ <- function() {
 ##     ms2_cols <- intersect(colnames(qa_ms2),SUMM_COLS)
 ##     ms2_cols <- setdiff(ms2_cols,colnames(summ))
 ##     summ <- qa_ms2[summ,c(..comp_cols,..ms1_cols,..ms2_cols),on=BASE_KEY]
-##     data.table::setkeyv(summ,c(BASE_KEY_MS2,"an"))
+##     data.table::setkeyv(summ,c(BASE_KEY_MS2,"scan"))
 ##     summ[,qa_ms1_exists:=the_ifelse(!is.na(qa_ms1_good_int),T,F)]
 ##     summ[,qa_ms2_exists:=the_ifelse(!is.na(CE),T,F)]
 ##     summ[,qa_pass:=apply(.SD,1,all),.SDcols=QA_FLAGS[!(QA_FLAGS %in% "qa_pass")]]
@@ -642,7 +642,7 @@ assess_ms2 <- function(m) {
     qa_ms2 <- ms2[qa_ms1[qa_ms1_above_noise==T],.(CE=unique(CE),
                                                   pc_rt=i.ms1_rt,
                                                   pc_int=i.ms1_int,
-                                                  an=unique(an)),on=BASE_KEY,by=.EACHI,nomatch=NULL]
+                                                  scan=unique(scan)),on=BASE_KEY,by=.EACHI,nomatch=NULL]
 
     rt_win2 <- presconf$ret_time_shift_tol
     qa_ms2 <- ms2[qa_ms2,.(pc_rt=pc_rt,
@@ -650,12 +650,12 @@ assess_ms2 <- function(m) {
                            ms2_int=max(intensity),
                            ms2_rt=unique(rt),
                            qa_ms2_near=head(rt,1) < pc_rt + rt_win2 & head(rt,1) > pc_rt - rt_win2),
-                  by=.EACHI,on=c(BASE_KEY_MS2,"an")]
+                  by=.EACHI,on=c(BASE_KEY_MS2,"scan")]
 
     qa_ms2$qa_ms2_good_int <-F
     qa_ms2[qa_ms2_near==T,
            qa_ms2_good_int := ms2_int > presconf$ms2_int_thresh & ms2_int < pc_int,
-           by=c(BASE_KEY_MS2,"an")]
+           by=c(BASE_KEY_MS2,"scan")]
 
 
     ## qa_ms2$qa_pass <- F
@@ -702,7 +702,7 @@ analyse_extracted_data_old <- function(extr,prescreen_param) {
 
     ## We drop mz info.
     tab_ms2 <- ms2_clc_ns[,.(ms2_rt=first(rt),ms2_int=max(intensity),ms2_thr=first(ms2_thr)),by=c(BASE_KEY_MS2,'an')]
-    tab_ms2[,qa_ms2_good_int:=ms2_int>ms2_thr,by="an"]
+    tab_ms2[,qa_ms2_good_int:=ms2_int>ms2_thr,by="scan"]
     data.table::setkeyv(tab_ms2,BASE_KEY_MS2)
     tab_ms2[,`:=`(rt_left = ms2_rt - rt_shift,rt_right = ms2_rt + rt_shift)]
 
@@ -737,7 +737,7 @@ analyse_extracted_data_old <- function(extr,prescreen_param) {
     ## MS2 result.
     tmp = tab_ms1[tab_ms2,{
         xx = find_ms1_max(rt,intensity,i.rt_left,i.rt_right)
-        .(an=i.an,
+        .(scan=i.scan,
           ms1_rt = xx[1,],
           ms1_int = xx[2,])
     },by=.EACHI, nomatch=NULL]
diff --git a/R/plotting.R b/R/plotting.R
index a948ff630ff6c8a49bd0dc380afe7d0102f134b1..eb90abd8a1eb04a719a0734204ec12d67e37a1ad 100644
--- a/R/plotting.R
+++ b/R/plotting.R
@@ -298,7 +298,7 @@ get_data_4_eic_ms1 <- function(extr_ms1,summ_rows,kvals,labs) {
 get_data_4_eic_ms2 <- function(summ,kvals,labs) {
     tab <-get_data_from_key(tab=summ,key=kvals)
     nms <- names(kvals)
-    byby <- unique(c(nms,labs,"an"))
+    byby <- unique(c(nms,labs,"scan"))
     pdata <- tab[,.(intensity=ms2_int,rt=ms2_rt),by=byby]
     if (NROW(pdata)==0L) return(NULL)
     xlxx <- as.character(labs)
@@ -336,14 +336,14 @@ make_eic_ms1_plot <- function(extr_ms1,summ,kvals,labs,axis="linear",rt_range=NU
     ## TODO: FIXME: Somehow calculating representationve ms1_rt for
     ## plots is wrong. Horrible and wrong. Will remove those labels
     ## until we fix.
-    summ_rows <- narrow_summ(summ,kvals,labs,"mz","ms1_rt","ms1_int","Name","SMILES","Formula","qa_ms1_exists","an","ms2_sel")
+    summ_rows <- narrow_summ(summ,kvals,labs,"mz","ms1_rt","ms1_int","Name","SMILES","Formula","qa_ms1_exists","scan","ms2_sel")
     rows_key <- union(data.table::key(summ_rows),labs)
     summ_rows$sel_ms1_rt=NA_real_
     summ_rows[ms2_sel==T,sel_ms1_rt:=ms1_rt[which.max(ms1_int)],by=rows_key]
     summ_rows[is.na(sel_ms1_rt) & ms2_sel==F & qa_ms1_exists==T,sel_ms1_rt:=ms1_rt[which.max(ms1_int)],by=rows_key]
     summ_rows[,ms1_rt:=sel_ms1_rt]
     summ_rows[,sel_ms1_rt:=NULL]
-    summ_rows[,c("an","qa_ms1_exists","ms2_sel"):=NULL]
+    summ_rows[,c("scan","qa_ms1_exists","ms2_sel"):=NULL]
     summ_rows <- summ_rows[,unique(.SD)]
     
     ## Get the table with ms1 data.
@@ -416,7 +416,7 @@ make_eic_ms2_plot <- function(summ,kvals,labs,axis="linear",rt_range=NULL,asp=1,
          ggplot2::labs(caption=tag_txt,title=title_txt,subtitle=subt_txt) +
          ggplot2::xlab("retention time")+ggplot2::ylab("intensity")+cust_geom_linerange()+
          scale_y(axis=axis,labels=sci10)+rt_lim+guide_fun()
-    ans <- pdata[,unique(an)]
+    ans <- pdata[,unique(scan)]
 
     ## Add theme.
     colrdata <- narrow_colrdata(colrdata,kvals)
@@ -435,11 +435,11 @@ make_spec_ms2_plot <- function(extr_ms2,summ,kvals,labs,axis="linear",asp=1, col
     subxdata <- get_data_from_key(extr_ms2,key=common_vals)
     if (NROW(mdata)==0L) return(NULL)
     if (NROW(subxdata) == 0L) return(NULL)
-    ans <- data.table(an=mdata[,unique(an)],key="an")
+    ans <- data.table(scan=mdata[,unique(scan)],key="scan")
     ms2ctg <- c(intersect(c(names(kvals),labs),names(extr_ms2)),"CE")
     xlxx <- intersect(as.character(labs),names(extr_ms2))
-    common_labels <- unique(c("an",common_key,intersect(names(extr_ms2),labs)))
-    pdata <- subxdata[ans,on="an"][,.(mz=mz,intensity=intensity,rt=signif(unique(rt),5)),by=common_labels]
+    common_labels <- unique(c("scan",common_key,intersect(names(extr_ms2),labs)))
+    pdata <- subxdata[ans,on="scan"][,.(mz=mz,intensity=intensity,rt=signif(unique(rt),5)),by=common_labels]
     pdata <- eval(bquote(pdata[,label:=make_line_label(..(lapply(c(xlxx,"rt"),as.symbol))),by=.(xlxx)],splice=T))
 
     if (NROW(pdata)==0L) return(NULL)
diff --git a/R/resources.R b/R/resources.R
index b3f57b103414fb9b49445501342fec3d66eff384..4cd7360137ac5943d952389733a8f9981a9ec78f 100644
--- a/R/resources.R
+++ b/R/resources.R
@@ -206,7 +206,7 @@ REPORT_TITLE = "Plots of EICs and MS2 Spectra"
 ## Select the most fundamental group of entries. Within this group,
 ## each ID is unique.
 BASE_KEY = "precid"#c("adduct","tag","ID")
-BASE_KEY_MS2 = c("precid","ce","scan")#c(BASE_KEY,"CE","an")
+BASE_KEY_MS2 = c("precid","ce","scan")#c(BASE_KEY,"CE","scan")
 
 FIG_DEF_CONF =list(grouping=list(group="adduct",
                                   plot="ID",
diff --git a/R/shiny-state.R b/R/shiny-state.R
index ef287a00c463789f8e0febfc329278127c9ff85d..c0b32f9db5244e50226c82cd79ef3ac519ac3fc9 100644
--- a/R/shiny-state.R
+++ b/R/shiny-state.R
@@ -557,13 +557,13 @@ get_cindex_kval <- function(cindex,row,key) {
 get_summ_subset <- function(summ,ptab,paritem,kvals) {
     select <- ptab[item==(paritem)]
     tab <- get_data_from_key(summ,kvals)[select,nomatch=NULL,on=key(ptab)]
-    if ("an.1" %in% names(tab)) tab[,an.1:=NULL] #TODO: This is
+    if ("scan.1" %in% names(tab)) tab[,scan.1:=NULL] #TODO: This is
                                                  #probably a lousy
                                                  #hack.
     tab
 }
 
-get_ltab <- function(summ_subs,cols=c("an","ms2_rt")) {
+get_ltab <- function(summ_subs,cols=c("scan","ms2_rt")) {
     tab <- summ_subs
     if (NROW(tab)==1L && is.na(tab$an)) return(data.table::data.table(item=character()))
     tab[is.na(ms2_sel),ms2_sel:=F] #TODO FIXME: Check why NAs exist at all?
@@ -593,8 +593,8 @@ update_on_commit_chg <- function(summ,input,ptab,ltab) {
     if ('an' %in% names(kvals) && n_ms2_sel) {
         rkvals <- kvals[!(names(kvals) %in% 'an')]
         rktab <- tabkey(summ,kvals=rkvals)
-        tabsel <- summ[rktab,.(an,ms2_sel)]
-        ansel <- tabsel[ms2_sel == T,an]
+        tabsel <- summ[rktab,.(scan,ms2_sel)]
+        ansel <- tabsel[ms2_sel == T,scan]
         print('ansel')
         print(ansel)
         if (length(ansel)!=0) {
@@ -610,7 +610,7 @@ update_on_commit_chg <- function(summ,input,ptab,ltab) {
 
     the_row <- tabkey(summ,kvals=kvals)
     summ[the_row,(tgts):=..srcs]
-    summ[,an.1:=NULL] #FIXME: an.1 pops up somewhere.
+    summ[,scan.1:=NULL] #FIXME: an.1 pops up somewhere.
     qflg <- QA_FLAGS[!(QA_FLAGS %in% "qa_pass")]
     summ[the_row,qa_pass:=apply(.SD,1,all),.SDcols=qflg]
     summ
diff --git a/R/shiny-ui-base.R b/R/shiny-ui-base.R
index 8cd232e97a71b90cbf15c214c264e12b70534ee0..3ea38e79ca858b84b15f15377250a457e29c19f1 100644
--- a/R/shiny-ui-base.R
+++ b/R/shiny-ui-base.R
@@ -564,7 +564,7 @@ mk_shinyscreen_server <- function(projects,init) {
         
         res = if (NROW(sel_dt)>0) {
                    
-                   tab[sel_dt,..coln,on=c("adduct","tag","ID","an")]
+                   tab[sel_dt,..coln,on=c("adduct","tag","ID","scan")]
                } else triv
         data.table::setnames(res,"intensity","ms2_int")
         res
@@ -741,8 +741,8 @@ mk_shinyscreen_server <- function(projects,init) {
         rf_get_cindex_parents <- reactive({
             rvs$m
             isolate({
-                ms1 = rvs$m$extr$ms1
-                ms2 = rvs$m$extr$ms2
+                ms1 = rvs$m$db$extr$cgm$ms1
+                ms2 = rvs$m$db$extr$cgm$ms2
                 summ = req(rvs$m$out$tab$summ)
             })
 
@@ -813,7 +813,7 @@ mk_shinyscreen_server <- function(projects,init) {
         
         rf_plot_eic_ms1 <- reactive({
             isolate({
-                ms1 = rvs$m$extr$ms1
+                ms1 = rvs$m$db$extr$cgm$ms1
                 summ = rvs$m$out$tab$summ
 
             })
@@ -878,7 +878,7 @@ mk_shinyscreen_server <- function(projects,init) {
         rf_plot_spec_ms2 <- reactive({
             isolate({
                 summ = rvs$m$out$tab$summ
-                ms2 = rvs$m$extr$ms2
+                ms2 = rvs$m$db$extr$cgm$ms2
             })
             req(NROW(summ)>0L)
             req(NROW(ms2)>0L)
@@ -987,7 +987,7 @@ mk_shinyscreen_server <- function(projects,init) {
                 rvs$status$ms2_int_thresh_stat = rvs$m$conf$prescreen[["ms2_int_thresh"]]
                 rvs$status$s2n_stat = rvs$m$conf$prescreen[["s2n"]]
                 rvs$status$ret_time_shift_tol_stat = rvs$m$conf$prescreen[["ret_time_shift_tol"]]
-                if (NROW(m$extr$ms1)>0L) rvs$status$is_extracted_stat = "Yes."
+                if (NROW(m$db$extr$cgm$ms1)>0L) rvs$status$is_extracted_stat = "Yes."
                 if (NROW(m$out$tab$summ)>0L) rvs$status$is_qa_stat = "Yes."
 
             } else {
@@ -1164,7 +1164,7 @@ mk_shinyscreen_server <- function(projects,init) {
         
 
         observeEvent(input$presc_b,{
-            if (NROW(rvs$m$extr$ms1)>0L) {
+            if (NROW(rvs$m$db$extr$cgm$ms1)>0L) {
                 ## Update just prescreening conf.
                 rvs$m = app_update_conf(input=input,
                                         gui=rvs$gui,
@@ -1296,8 +1296,8 @@ mk_shinyscreen_server <- function(projects,init) {
         
         observeEvent(input$make_report_b,{
             isolate({
-                ms1 = rvs$m$extr$ms1
-                ms2 = rvs$m$extr$ms2
+                ms1 = rvs$m$db$extr$cgm$ms1
+                ms2 = rvs$m$db$extr$cgm$ms2
                 summ = rvs$m$out$tab$summ
 
             })
@@ -1363,7 +1363,7 @@ mk_shinyscreen_server <- function(projects,init) {
             fn = file.path(projdir,input$ms2_spectra_tab_name)
             shinymsg(paste0("Saving MS2 spectra table to: ",basename(fn)))
             tab2file(pack_ms2_w_summ(rvs$m$out$tab$summ,
-                                    rvs$m$extr$ms2),
+                                    rvs$m$db$extr$cgm$ms2),
                      fn)
             shinymsg("Done saving MS2 spectra table.")
         })
@@ -1625,7 +1625,7 @@ mk_shinyscreen_server <- function(projects,init) {
                                        path = rvs$m$run$metfrag$path,
                                        subpaths = rvs$m$run$metfrag$subpaths,
                                        db_file = rvs$m$run$metfrag$db_file,
-                                       stag_tab = stagtab, ms2 = rvs$m$extr$ms2,
+                                       stag_tab = stagtab, ms2 = rvs$m$db$extr$cgm$ms2,
                                        runtime=rvs$m$run$metfrag$runtime,
                                        java_bin=rvs$m$run$metfrag$java_bin,
                                        nproc = rvs$m$conf$metfrag$nproc)
@@ -1754,7 +1754,7 @@ mk_shinyscreen_server <- function(projects,init) {
             selMS2 = req(input$sel_spec)
             if (NROW(ms2tabsel)!=0L) {
                 lval = lapply(ms2tabsel[item==(selMS2)],function(x) x)
-                ms2 = rvs$m$extr$ms2
+                ms2 = rvs$m$db$extr$cgm$ms2
                 kval = rf_get_cindex_kval()
                 allval = c(kval,lval)
                 ## There can be some duplicates.
@@ -1764,7 +1764,7 @@ mk_shinyscreen_server <- function(projects,init) {
                 #more than the names existing in extr$ms2. Also,
                 #BASE_KEY_MS2 does not contain `an', so we need to readd
                 #it.
-                key = unique(c(names(allval)[names(allval) %in% BASE_KEY_MS2],"an"))
+                key = unique(c(names(allval)[names(allval) %in% BASE_KEY_MS2],"scan"))
                 kval2 = allval[key]
                 spec = get_data_from_key(ms2,kval2)[,.(mz,intensity)]
                 ## as.character(lapply(1L:NROW(spec),function(nr) paste0(spec[nr,mz]," ",spec[nr,intensity])))
diff --git a/R/state.R b/R/state.R
index 9753840b249cef62e67bf77a94778eef4a7c3358..157bbd96be53ab49e7b6cb6ce68f5174b696eb27 100644
--- a/R/state.R
+++ b/R/state.R
@@ -409,7 +409,7 @@ pack_ms2_w_summ <- function(summ,ms2) {
 
     ## Take the columns we need from summ.
     x = summ[ms2_sel==T,.SD,.SDcols=c(key(summ),"mz","SMILES","Formula","Name")]
-    mrg_keys = c(intersect(key(ms2),key(summ)),"an")
+    mrg_keys = c(intersect(key(ms2),key(summ)),"scan")
     ms2[x,.(mz=i.mz,ms2_spectrum=encode_ms2_to_line(.SD[,c("mz","intensity")])),on=mrg_keys,by=.EACHI]
 }
 
diff --git a/tests/testthat/test-integration.R b/tests/testthat/test-integration.R
index 3b46dc0ffb0c950440c359dd06e5b26959a0160c..7c0a667602ba4052725bec275f4af2dc84e1b0a6 100644
--- a/tests/testthat/test-integration.R
+++ b/tests/testthat/test-integration.R
@@ -13,5 +13,6 @@ test_that("Extraction returns what is needed.",{
 
     m = run(envopts=eo,m=m,phase="extract")
     m = run(envopts=eo,m=m,phase="prescreen")
+    browser()
     expect_true(1==1)
 })