diff --git a/R/helper_functions.R b/R/helper_functions.R
index dccd82b571b9d72e593aa8329bc458c6edf21b90..b7c2b57deb0bc31dcb7fd1c627feb5df7fadeab7 100644
--- a/R/helper_functions.R
+++ b/R/helper_functions.R
@@ -1,3 +1,5 @@
+TOTO <<- 0
+
 getPackagesWithTitle <- function() {
        contrib.url("https://cran.rstudio.com/", "source") 
        description <- sprintf("%s/web/packages/packages.rds", 
@@ -8,10 +10,9 @@ getPackagesWithTitle <- function() {
               url(description, "rb")
            }
      on.exit(close(con))
+      
        db <- readRDS(gzcon(con))
-       rownames(db) <- NULL
-  
-         db[, c("Package", "Title", "Version")]
+      db[, c("Package", "Title", "Version")]
    }
 
 
diff --git a/app.R b/app.R
index 6bebe07bd52d2cf3ebb4bdbd00afb27732d6a24b..918d465288e2e4e1dbb7c1389d5f63ece70bfdc3 100644
--- a/app.R
+++ b/app.R
@@ -9,6 +9,11 @@ library(githubinstall)
 require(stringi)
 library(devtools)
 library(yaml)
+library(BiocManager)
+library(promises)
+library(future)
+plan(multiprocess)
+
 
 source("./R/helper_functions.R", local = T)
 source("./R/menugauche.R", local = T)
@@ -41,17 +46,14 @@ UI <- dashboardPage(
 )
 
 server <- function( input, output, session) {
-  
-  source("https://bioconductor.org/biocLite.R")
-  
+
   session$userData <- c()
-  
   disable("rcranpackagelist")
   
-  #allCRAN <<- as.data.frame(available.packages(repo = "http://cran.us.r-project.org")[, c("Package")])
-  allCRAN <<- as.data.frame(getPackagesWithTitle())
-  allBIO <<- as.data.frame(available.packages(repo = biocinstallRepos()[1])[, c("Package", "Version")])
+  allCRAN <<- c()
+  allBIO <<- c()
   allGITHUB <<- data.frame(Package=character(), Version=character())
+  
   TMP <<- yaml.load_file("container.yaml")$containers 
   i = 1
   j = 1
diff --git a/server/opt_home.R b/server/opt_home.R
index 8cf2f2ccb8628843de7eb06edfcb3c6660b47332..2c7dc4ac946a1c52f68bdde117232a84f8c4f2e2 100755
--- a/server/opt_home.R
+++ b/server/opt_home.R
@@ -1,16 +1,22 @@
 
 output$dtrcranpackage <- DT::renderDataTable({
-  
-  
-  result <- allCRAN
-  
-  return(result)
+  future({
+    cran <- as.data.frame(getPackagesWithTitle())
+    cran
+  }) %...>% (function(result) {
+    allCRAN <<- result
+    return(result)
+  })
 }, filter='top', escape = FALSE, rownames= FALSE,server = TRUE)
 
 output$dtrbioconductorpackage <- DT::renderDataTable({
-  result <- allBIO
-  
-  return(result)
+  future({
+    bioc <- as.data.frame(available.packages(repo = BiocManager::repositories()[1])[, c("Package", "Version")])
+    bioc
+  }) %...>% (function(result) {
+    allBIO <<- result
+    return(result)
+  })
 }, filter='top', escape = FALSE, rownames= FALSE,server = TRUE)
 
 output$dtrgithubpackage <- DT::renderDataTable({
@@ -31,8 +37,6 @@ output$dtbiocontainer <- DT::renderDataTable({
   return(result)
 }, filter='top', escape = FALSE, rownames= FALSE,server = TRUE)
 
-getWorkflows
-
 output$dtWorkflows <- DT::renderDataTable({
   result <- data.frame(Workflow=character(),
                        Author=character(),
@@ -909,16 +913,19 @@ observeEvent(input$findGithub, {
   name <- input$inputGithub
   
   if(!stri_isempty(name)) {
-    allGITHUB <<- data.frame(Package = gh_suggest(name, keep_title = FALSE), Title = attr(gh_suggest(name, keep_title = TRUE), "title"))
-    
-    if(length(allGITHUB)  >= 1 ) {
-    output$dtrgithubpackage <- DT::renderDataTable({
-      result <- allGITHUB
-      return(result)
-    }, filter='top', escape = FALSE, rownames= FALSE,server = TRUE)
-    }
+    future({
+      github <-  data.frame(Package = gh_suggest(name, keep_title = FALSE), Title = attr(gh_suggest(name, keep_title = TRUE), "title"))
+      github
+    }) %...>% (function(result) {
+      allGITHUB <<- result
+      if(length(allGITHUB)  >= 1 ) {
+        output$dtrgithubpackage <- DT::renderDataTable({
+          result <- allGITHUB
+          return(result)
+        }, filter='top', escape = FALSE, rownames= FALSE,server = TRUE)
+      }
+    })
   }
-  
 })