diff --git a/CHANGELOG.md b/CHANGELOG.md
index cf85eb0b150d9211632ba12ab96089ca0d61786e..ce42941e8c959e5c9af1f4b8b0d4f6478787183f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,8 @@ that users understand how the changes affect the new version.
 version 5.0.0-dev
 ---------------------------
 + Add NanoPlot and NanoQC tasks.
++ Centrifuge: Add `timeMinutes` to `Classify` task and remove unnecessary
+  downloading tasks (alternative is refseqtools).
 + collect-columns: updated docker image to version 1.0.0 and added the
   `sumOnDuplicateId` input (defaults to false).
 + survivor: replace integer boolean type to logical true or false value.
diff --git a/centrifuge.wdl b/centrifuge.wdl
index ee30532570c43a3ab137d51d926ebd5cda6ece20..bc2ea462df88b17a8d0065c9586a06978c3e0ca8 100644
--- a/centrifuge.wdl
+++ b/centrifuge.wdl
@@ -110,6 +110,7 @@ task Classify {
 
         Int threads = 4
         String memory = "16G"
+        Int timeMinutes = 2880
         String dockerImage = "quay.io/biocontainers/centrifuge:1.0.4_beta--he513fc3_5"
     }
 
@@ -150,6 +151,7 @@ task Classify {
     runtime {
         cpu: threads
         memory: memory
+        time_minutes: timeMinutes
         docker: dockerImage
     }
 
@@ -169,6 +171,7 @@ task Classify {
         excludeTaxIDs: {description: "A comma-separated list of taxonomic IDs that will be excluded in classification procedure.", category: "common"}
         threads: {description: "The number of threads to be used.", category: "advanced"}
         memory: {description: "The amount of memory available to the job.", category: "advanced"}
+        timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"}
         dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"}
 
         # outputs
@@ -233,73 +236,6 @@ task Inspect {
     }
 }
 
-task Download {
-    input {
-        String libraryPath
-        Array[String]? domain
-        String executable = "centrifuge-download"
-        String? preCommand
-        String? seqTaxMapPath
-        String database = "refseq"
-        String? assemblyLevel
-        String? refseqCategory
-        Array[String]? taxIds
-        Boolean filterUnplaced = false
-        Boolean maskLowComplexRegions = false
-        Boolean downloadRnaSeqs = false
-        Boolean modifyHeader = false
-        Boolean downloadGiMap = false
-    }
-
-    # This will use centrifuge-download to download.
-    # The bash statement at the beginning is to make sure
-    # the directory for the SeqTaxMapPath exists.
-    command {
-        set -e -o pipefail
-        ~{preCommand}
-        ~{"mkdir -p $(dirname " + seqTaxMapPath + ")"}
-        ~{executable} \
-        -o ~{libraryPath} \
-        ~{true='-d ' false='' defined(domain)}~{sep=','  domain} \
-        ~{'-a "' + assemblyLevel + '"'} \
-        ~{"-c " + refseqCategory} \
-        ~{true='-t' false='' defined(taxIds)} '~{sep=',' taxIds}' \
-        ~{true='-r' false='' downloadRnaSeqs} \
-        ~{true='-u' false='' filterUnplaced} \
-        ~{true='-m' false='' maskLowComplexRegions} \
-        ~{true='-l' false='' modifyHeader} \
-        ~{true='-g' false='' downloadGiMap} \
-        ~{database} ~{">> " + seqTaxMapPath}
-    }
-
-    output {
-        File seqTaxMap = "~{seqTaxMapPath}"
-        File library = libraryPath
-        Array[File] fastaFiles = glob(libraryPath + "/*/*.fna")
-    }
- }
-
-task DownloadTaxonomy {
-    input {
-        String taxonomyDir
-        String executable = "centrifuge-download"
-        String? preCommand
-    }
-
-    command {
-        set -e -o pipefail
-        ~{preCommand}
-        ~{executable} \
-        -o ~{taxonomyDir} \
-        taxonomy
-    }
-
-    output {
-        File taxonomyTree = taxonomyDir + "/nodes.dmp"
-        File nameTable = taxonomyDir + "/names.dmp"
-    }
- }
-
 task KReport {
     input {
         File classification