diff --git a/CPAT.wdl b/CPAT.wdl
index 0c4e83db1f67d2a5fca475af8adb3076e73ed3d9..b92053d1e1fcdbe116fc845c845442fd1b7aeecc 100644
--- a/CPAT.wdl
+++ b/CPAT.wdl
@@ -11,7 +11,7 @@ task CPAT {
         # CPAT should not index the reference genome.
         Array[String]? startCodons
         Array[String]? stopCodons
-        String dockerTag = "v1.2.4_cv1"
+        String dockerImage = "biocontainers/cpat:v1.2.4_cv1"
     }
 
     # Some WDL magic in the command section to properly output the start and stopcodons to the command.
@@ -34,7 +34,7 @@ task CPAT {
     }
 
     runtime {
-        docker: "biocontainers/cpat:" + dockerTag
+        docker: dockerImage
     }
 }
 
diff --git a/biopet/biopet.wdl b/biopet/biopet.wdl
index 15f0771381d81ae668aaf25d8e173b3551bfd8d9..d88f0610723528fbc0ad1d1c9648147eca226a3f 100644
--- a/biopet/biopet.wdl
+++ b/biopet/biopet.wdl
@@ -230,7 +230,8 @@ task ReorderGlobbedScatters {
 
 task ScatterRegions {
     input {
-        Reference reference
+        File referenceFasta
+        File referenceFastaDict
         Int? scatterSize
         File? regions
         Boolean notSplitContigs = false
@@ -239,7 +240,7 @@ task ScatterRegions {
 
         Int memory = 8
         Float memoryMultiplier = 3.0
-        String dockerTag = "0.2--0"
+        String dockerImage = "quay.io/biocontainers/biopet-scatterregions:0.2--0"
     }
 
     # OutDirPath must be defined here because the glob process relies on
@@ -251,7 +252,7 @@ task ScatterRegions {
         set -e -o pipefail
         mkdir -p ~{outputDirPath}
         biopet-scatterregions -Xmx~{memory}G \
-          -R ~{reference.fasta} \
+          -R ~{referenceFasta} \
           -o ~{outputDirPath} \
           ~{"-s " + scatterSize} \
           ~{"-L " + regions} \
@@ -264,7 +265,7 @@ task ScatterRegions {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/biopet-scatterregions:" + dockerTag
+        docker: dockerImage
         memory: ceil(memory * memoryMultiplier)
     }
 }
diff --git a/bwa.wdl b/bwa.wdl
index e45c4dbc31de14114c9e3feb84938fa62e3ff3d7..2fe22007cd2e1d739950ed32a42aba6f429e7722 100644
--- a/bwa.wdl
+++ b/bwa.wdl
@@ -13,7 +13,9 @@ task Mem {
         Int threads = 2
         Int memory = 8
         Int picardMemory = 4
-        String dockerTag = "43ec6124f9f4f875515f9548733b8b4e5fed9aa6-0"
+        # A mulled container is needed to have both picard and bwa in one container.
+        # This container contains: picard (2.18.7), bwa (0.7.17-r1188)
+        String dockerImage = "quay.io/biocontainers/mulled-v2-002f51ea92721407ef440b921fb5940f424be842:43ec6124f9f4f875515f9548733b8b4e5fed9aa6-0"
     }
 
     command {
@@ -40,10 +42,7 @@ task Mem {
     runtime{
         cpu: threads
         memory: memory + picardMemory + picardMemory
-        # A mulled container is needed to have both picard and bwa in one container.
-        # This container contains: picard (2.18.7), bwa (0.7.17-r1188)
-        docker: "quay.io/biocontainers/mulled-v2-002f51ea92721407ef440b921fb5940f424be842:" +
-            dockerTag
+        docker: dockerImage
     }
 }
 
diff --git a/collect-columns.wdl b/collect-columns.wdl
index 68c9dcc884563d41e6322440e2f0743368c65ef7..910aeac255dc07afc22068896d69aa81ef56fed8 100644
--- a/collect-columns.wdl
+++ b/collect-columns.wdl
@@ -13,10 +13,12 @@ task CollectColumns {
         File? referenceGtf
         String? featureAttribute
 
-        String dockerTag = "0.2.0--py_1"
+        String dockerImage = "quay.io/biocontainers/collect-columns:0.2.0--py_1"
     }
 
     command {
+        set -e
+        mkdir -p $(dirname ~{outputPath})
         collect-columns \
         ~{outputPath} \
         ~{sep=" " inputTables} \
@@ -36,6 +38,6 @@ task CollectColumns {
 
     runtime {
         memory: 4 + ceil(0.5* length(inputTables))
-        docker: "quay.io/biocontainers/collect-columns:" + dockerTag
+        docker: dockerImage
     }
 }
\ No newline at end of file
diff --git a/cutadapt.wdl b/cutadapt.wdl
index 703e990c1e452db8b3aacb80b847f2727bea101b..6161d8baf3721b1e93fc006e9f6761ee5e695285 100644
--- a/cutadapt.wdl
+++ b/cutadapt.wdl
@@ -62,8 +62,8 @@ task Cutadapt {
         String? reportPath
 
         Int cores = 1
-        Int memory = 16
-        String dockerTag = "2.3--py36h14c3975_0"
+        Int memory = 16  # FIXME: Insane memory. Double-check if needed.
+        String dockerImage = "quay.io/biocontainers/cutadapt:2.3--py36h14c3975_0"
     }
 
     String read2outputArg = if (defined(read2output))
@@ -168,6 +168,6 @@ task Cutadapt {
     runtime {
         cpu: cores
         memory: memory
-        docker: "quay.io/biocontainers/cutadapt:" + dockerTag
+        docker: dockerImage
     }
 }
diff --git a/fastqc.wdl b/fastqc.wdl
index ad9e224694fffaa5d6860fa55c912a188ed9e0da..d4386b8198c2d7965cd8653d732d67469ab419b9 100644
--- a/fastqc.wdl
+++ b/fastqc.wdl
@@ -18,7 +18,7 @@ task Fastqc {
         String? dir
 
         Int threads = 1
-        String dockerTag = "0.11.7--4"
+        String dockerImage = "quay.io/biocontainers/fastqc:0.11.7--4"
         Array[File]? NoneArray
         File? NoneFile
     }
@@ -61,7 +61,7 @@ task Fastqc {
 
     runtime {
         cpu: threads
-        docker: "quay.io/biocontainers/fastqc:" + dockerTag
+        docker: dockerImage
     }
 }
 
diff --git a/fastqsplitter.wdl b/fastqsplitter.wdl
new file mode 100644
index 0000000000000000000000000000000000000000..66f79af605d4f3bd9f28c3fa7690bb9808a5147c
--- /dev/null
+++ b/fastqsplitter.wdl
@@ -0,0 +1,62 @@
+version 1.0
+
+# MIT License
+#
+# Copyright (c) 2019 Leiden University Medical Center
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+task Fastqsplitter {
+    input {
+        File inputFastq
+        Array[String]+ outputPaths
+        String dockerImage = "quay.io/biocontainers/fastqsplitter:1.0.0--py_0"
+        Int? compressionLevel
+        Int? threadsPerFile
+         # fastqplitter utilizes one thread per input file and one or more threads per output file + one thread for the application.
+         # Since a compression level of 1 is used, each output file uses approx 0.5 cores.
+        Int cores = 1 + ceil(0.5 * length(outputPaths))
+    }
+
+    command {
+        set -e
+        mkdir -p $(dirname ~{sep=' ' outputPaths})
+        fastqsplitter \
+        ~{"-c " + compressionLevel} \
+        ~{"-t " + threadsPerFile} \
+        -i ~{inputFastq} \
+        -o ~{sep=' -o ' outputPaths}
+    }
+
+    output {
+        Array[File] chunks = outputPaths
+    }
+
+    # Using very safe margins here. 10MB/300MB per outputfile is used for single-threaded/multi-threaded compression.
+    Float memoryPerFile = if select_first([threadsPerFile, 1]) > 1 then 0.40 else 0.02
+    Int fastqsplitterMemory = ceil(0.100 + memoryPerFile * length(outputPaths))
+    # Make sure a minimum of 2 GB is present to pull the singularity image
+    Int memory = if fastqsplitterMemory <= 2 then 2 else fastqsplitterMemory
+
+    runtime {
+        memory: memory
+        docker: dockerImage
+        cpu: cores
+    }
+}
diff --git a/gatk.wdl b/gatk.wdl
index e76a93e8c979c6ebee0e8857d669da2e13827458..87fa1046be22020b0a7b37b638d6c30084c43519 100644
--- a/gatk.wdl
+++ b/gatk.wdl
@@ -14,7 +14,7 @@ task ApplyBQSR {
 
         Int memory = 4
         Float memoryMultiplier = 3.0
-        String dockerTag = "4.1.0.0--0"
+        String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
     }
 
     command {
@@ -42,7 +42,7 @@ task ApplyBQSR {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/gatk4:" + dockerTag
+        docker: dockerImage
         memory: ceil(memory * memoryMultiplier)
     }
 }
@@ -64,7 +64,7 @@ task BaseRecalibrator {
 
         Int memory = 4
         Float memoryMultiplier = 3.0
-        String dockerTag = "4.1.0.0--0"
+        String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
     }
 
     Array[File]+ knownIndelsSitesVCFsArg = flatten([
@@ -90,7 +90,7 @@ task BaseRecalibrator {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/gatk4:" + dockerTag
+        docker: dockerImage
         memory: ceil(memory * memoryMultiplier)
     }
 }
@@ -107,7 +107,7 @@ task CombineGVCFs {
 
         Int memory = 4
         Float memoryMultiplier = 3.0
-        String dockerTag = "4.1.0.0--0"
+        String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
     }
 
     command {
@@ -127,7 +127,7 @@ task CombineGVCFs {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/gatk4:" + dockerTag
+        docker: dockerImage
         memory: ceil(memory * memoryMultiplier)
     }
 }
@@ -140,7 +140,7 @@ task GatherBqsrReports {
 
         Int memory = 4
         Float memoryMultiplier = 3.0
-        String dockerTag = "4.1.0.0--0"
+        String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
     }
 
     command {
@@ -157,7 +157,7 @@ task GatherBqsrReports {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/gatk4:" + dockerTag
+        docker: dockerImage
         memory: ceil(memory * memoryMultiplier)
     }
 }
@@ -175,7 +175,7 @@ task GenotypeGVCFs {
         File? dbsnpVCFIndex
         Int memory = 6
         Float memoryMultiplier = 2.0
-        String dockerTag = "4.1.0.0--0"
+        String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
     }
 
     command {
@@ -200,7 +200,7 @@ task GenotypeGVCFs {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/gatk4:" + dockerTag
+        docker: dockerImage
         memory: ceil(memory * memoryMultiplier)
     }
 }
@@ -220,7 +220,7 @@ task HaplotypeCallerGvcf {
         File? dbsnpVCFIndex
         Int memory = 4
         Float memoryMultiplier = 3
-        String dockerTag = "4.1.0.0--0"
+        String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
     }
 
     command {
@@ -243,7 +243,7 @@ task HaplotypeCallerGvcf {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/gatk4:" + dockerTag
+        docker: dockerImage
         memory: ceil(memory * memoryMultiplier)
     }
 }
@@ -258,11 +258,12 @@ task MuTect2 {
         String outputVcf
         String tumorSample
         String? normalSample
+        File? panelOfNormals
         Array[File]+ intervals
 
         Int memory = 4
         Float memoryMultiplier = 3
-        String dockerTag = "4.1.0.0--0"
+        String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
     }
 
     command {
@@ -274,6 +275,7 @@ task MuTect2 {
         -I ~{sep=" -I " inputBams} \
         -tumor ~{tumorSample} \
         ~{"-normal " + normalSample} \
+        ~{"--panel-of-normals " + panelOfNormals} \
         -O ~{outputVcf} \
         -L ~{sep=" -L " intervals}
     }
@@ -284,7 +286,7 @@ task MuTect2 {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/gatk4:" + dockerTag
+        docker: dockerImage
         memory: ceil(memory * memoryMultiplier)
     }
 }
@@ -301,7 +303,7 @@ task SplitNCigarReads {
 
         Int memory = 4
         Float memoryMultiplier = 4
-        String dockerTag = "4.1.0.0--0"
+        String dockerImage = "quay.io/biocontainers/gatk4:4.1.0.0--0"
     }
 
     command {
@@ -321,7 +323,7 @@ task SplitNCigarReads {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/gatk4:" + dockerTag
+        docker: dockerImage
         memory: ceil(memory * memoryMultiplier)
     }
 }
diff --git a/gffcompare.wdl b/gffcompare.wdl
index 51fec85b600ae7c0df5c96683a9458901e0759cf..eea15236e77ea0551665f1014055010461d621bf 100644
--- a/gffcompare.wdl
+++ b/gffcompare.wdl
@@ -2,7 +2,7 @@ version 1.0
 
 task GffCompare {
     input {
-        String dockerTag = "0.10.6--h2d50403_0"
+        String dockerImage = "quay.io/biocontainers/gffcompare:0.10.6--h2d50403_0"
         File? inputGtfList
         Array[File] inputGtfFiles
         File referenceAnnotation
@@ -87,6 +87,6 @@ task GffCompare {
     }
 
     runtime {
-       docker: "quay.io/biocontainers/gffcompare:" + dockerTag
+       docker: dockerImage
     }
 }
\ No newline at end of file
diff --git a/gffread.wdl b/gffread.wdl
index 08b2e8d7cc8195edd0da76a83625a5c91292f58d..da99781b99529b4e452ae301a6eb2e67c6e2ccaf 100644
--- a/gffread.wdl
+++ b/gffread.wdl
@@ -10,7 +10,7 @@ task GffRead {
         String? proteinFastaPath
         String? filteredGffPath
         Boolean outputGtfFormat = false
-        String dockerTag = "0.9.12--0"
+        String dockerImage = "quay.io/biocontainers/gffread:0.9.12--0"
     }
 
     # The mkdirs below are hackish. It should be
@@ -41,6 +41,6 @@ task GffRead {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/gffread:" + dockerTag
+        docker: dockerImage
     }
 }
\ No newline at end of file
diff --git a/hisat2.wdl b/hisat2.wdl
index 0c8417f7ae3592e863477d251a550b7f8457feca..27d9dedf62519f395576168286d7aab7a3b0c5f8 100644
--- a/hisat2.wdl
+++ b/hisat2.wdl
@@ -14,8 +14,10 @@ task Hisat2 {
 
         Int threads = 1
         Int memory = 48
+        # quay.io/biocontainers/mulled-v2-a97e90b3b802d1da3d6958e0867610c718cb5eb1
+        # is a combination of hisat2 and samtools
         # hisat2=2.1.0, samtools=1.8
-        String dockerTag = "2388ff67fc407dad75774291ca5038f40cac4be0-0"
+        String dockerImage = "quay.io/biocontainers/mulled-v2-a97e90b3b802d1da3d6958e0867610c718cb5eb1:2388ff67fc407dad75774291ca5038f40cac4be0-0"
     }
 
     command {
@@ -41,8 +43,6 @@ task Hisat2 {
     runtime {
         memory: (memory / threads) + 1
         cpu: threads + 1
-        # quay.io/biocontainers/mulled-v2-a97e90b3b802d1da3d6958e0867610c718cb5eb1
-        # is a combination of hisat2 and samtools
-        docker: "quay.io/biocontainers/mulled-v2-a97e90b3b802d1da3d6958e0867610c718cb5eb1:" + dockerTag
+        docker: dockerImage
     }
 }
\ No newline at end of file
diff --git a/htseq.wdl b/htseq.wdl
index a687a8a6242b4ec0a8b1dd2b3b46b5a2c49d3923..ed13167cc800627a8370634d667f96022c3bfe5a 100644
--- a/htseq.wdl
+++ b/htseq.wdl
@@ -11,7 +11,7 @@ task HTSeqCount {
         String stranded = "no"
 
         Int memory = 40
-        String dockerTag = "0.9.1--py36h7eb728f_2"
+        String dockerImage = "quay.io/biocontainers/htseq:0.9.1--py36h7eb728f_2"
     }
 
     command {
@@ -32,6 +32,6 @@ task HTSeqCount {
 
     runtime {
         memory: memory
-        docker: "quay.io/biocontainers/htseq:" + dockerTag
+        docker: dockerImage
     }
 }
\ No newline at end of file
diff --git a/manta.wdl b/manta.wdl
index 759766e33797cbb3479dcf256331709c18fd27f4..f2e1d43d37947ed71c48de543683079fce9bf8a5 100644
--- a/manta.wdl
+++ b/manta.wdl
@@ -4,31 +4,28 @@ import "common.wdl"
 
 task Somatic {
     input {
-        IndexedBamFile tumorBam
-        IndexedBamFile? normalBam
-        Reference reference
-        String runDir
+        File tumorBam
+        File tumorBamIndex
+        File? normalBam
+        File? normalBamIndex
+        File referenceFasta
+        File referenceFastaFai
+        String runDir = "./manta_run"
         File? callRegions
         File? callRegionsIndex
         Boolean exome = false
 
         Int cores = 1
         Int memory = 4
-        String dockerTag = "1.4.0--py27_1"
+        String dockerImage = "quay.io/biocontainers/manta:1.4.0--py27_1"
 
-        File? doNotDefineThis #FIXME
     }
 
-    File? normalBamFile = if defined(normalBam)
-        then select_first([normalBam]).file
-        else doNotDefineThis
-
     command {
-        set -e
         configManta.py \
-        ~{"--normalBam " + normalBamFile} \
-        ~{"--tumorBam " + tumorBam.file} \
-        --referenceFasta ~{reference.fasta} \
+        ~{"--normalBam " + normalBam} \
+        ~{"--tumorBam " + tumorBam} \
+        --referenceFasta ~{referenceFasta} \
         ~{"--callRegions " + callRegions} \
         --runDir ~{runDir} \
         ~{true="--exome" false="" exome}
@@ -40,25 +37,16 @@ task Somatic {
     }
 
     output {
-        IndexedVcfFile candidateSmallIndels = object {
-          file: runDir + "/results/variants/candidateSmallIndels.vcf.gz",
-          index: runDir + "/results/variants/candidateSmallIndels.vcf.gz.tbi"
-        }
-        IndexedVcfFile candidateSV = object {
-          file: runDir + "/results/variants/candidateSV.vcf.gz",
-          index: runDir + "/results/variants/candidateSV.vcf.gz.tbi"
-        }
-        IndexedVcfFile tumorSV = if defined(normalBam)
-            then object {
-              file: runDir + "/results/variants/somaticSV.vcf.gz",
-              index: runDir + "/results/variants/somaticSV.vcf.gz.tbi"
-            }
-            else object {
-              file: runDir + "/results/variants/tumorSV.vcf.gz",
-              index: runDir + "/results/variants/tumorSV.vcf.gz.tbi"
-            }
-
-        #FIXME: workaround for https://github.com/broadinstitute/cromwell/issues/4111
+        File candidateSmallIndelsVcf = runDir + "/results/variants/candidateSmallIndels.vcf.gz"
+        File candidateSmallIndelsVcfIndex = runDir + "/results/variants/candidateSmallIndels.vcf.gz.tbi"
+        File candidateSVVcf = runDir + "/results/variants/candidateSV.vcf.gz"
+        File candidatSVVcfIndex = runDir + "/results/variants/candidateSV.vcf.gz.tbi"
+        File tumorSVVcf = if defined(normalBam)
+                          then runDir + "/results/variants/somaticSV.vcf.gz"
+                          else runDir + "/results/variants/tumorSV.vcf.gz"
+        File tumorSVVcfIndex = if defined(normalBam)
+                               then runDir + "/results/variants/somaticSV.vcf.gz.tbi"
+                               else runDir + "/results/variants/tumorSV.vcf.gz.tbi"
         File? diploidSV = runDir + "/results/variants/diploidSV.vcf.gz"
         File? diploidSVindex = runDir + "/results/variants/diploidSV.vcf.gz.tbi"
     }
@@ -66,6 +54,6 @@ task Somatic {
     runtime {
         cpu: cores
         memory: memory
-        docker: "quay.io/biocontainers/manta:" + dockerTag
+        docker: dockerImage
     }
 }
diff --git a/multiqc.wdl b/multiqc.wdl
index 76563a494f1998eab5b2f83ac42e5bf7e81a47fe..e7a87e1490931ea84ccf156aa4c54f349d668292 100644
--- a/multiqc.wdl
+++ b/multiqc.wdl
@@ -2,7 +2,7 @@ version 1.0
 
 task MultiQC {
     input {
-        String dockerTag = "1.7--py_1"
+        String dockerImage = "quay.io/biocontainers/multiqc:1.7--py_1"
         # Use a string here so cromwell does not relocate an entire analysis directory
         String analysisDirectory
         Array[File] dependencies = []  # This must be used in order to run multiqc after these tasks.
@@ -86,6 +86,6 @@ task MultiQC {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/multiqc:" + dockerTag
+        docker: dockerImage
     }
 }
diff --git a/picard.wdl b/picard.wdl
index a0a29fa1da46a5ce865f677049d7779da2988656..182797218ade65f4213b2f252bb5ae371bab69ef 100644
--- a/picard.wdl
+++ b/picard.wdl
@@ -8,7 +8,7 @@ task BedToIntervalList {
 
         Int memory = 4
         Float memoryMultiplier = 3.0
-        String dockerTag = "2.18.26--0"
+        String dockerImage = "quay.io/biocontainers/picard:2.18.26--0"
     }
 
     command {
@@ -26,7 +26,7 @@ task BedToIntervalList {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/picard:" + dockerTag
+        docker: dockerImage
         memory: ceil(memory * memoryMultiplier)
     }
 }
@@ -52,7 +52,9 @@ task CollectMultipleMetrics {
 
         Int memory = 8
         Float memoryMultiplier = 4
-        String dockerTag = "8dde04faba6c9ac93fae7e846af3bafd2c331b3b-0"
+        # https://raw.githubusercontent.com/BioContainers/multi-package-containers/80886dfea00f3cd9e7ae2edf4fc42816a10e5403/combinations/mulled-v2-23d9f7c700e78129a769e78521eb86d6b8341923%3A8dde04faba6c9ac93fae7e846af3bafd2c331b3b-0.tsv
+        # Contains r-base=3.4.1,picard=2.18.2
+        String dockerImage = "quay.io/biocontainers/mulled-v2-23d9f7c700e78129a769e78521eb86d6b8341923:8dde04faba6c9ac93fae7e846af3bafd2c331b3b-0"
     }
 
 
@@ -109,6 +111,7 @@ task CollectMultipleMetrics {
             insertSizeHistogramPdf,
             insertSize,
             preAdapterDetail,
+            preAdapterSummary,
             qualityByCycle,
             qualityByCyclePdf,
             qualityDistribution,
@@ -118,9 +121,8 @@ task CollectMultipleMetrics {
     }
 
     runtime {
-        # https://raw.githubusercontent.com/BioContainers/multi-package-containers/80886dfea00f3cd9e7ae2edf4fc42816a10e5403/combinations/mulled-v2-23d9f7c700e78129a769e78521eb86d6b8341923%3A8dde04faba6c9ac93fae7e846af3bafd2c331b3b-0.tsv
-        # Contains r-base=3.4.1,picard=2.18.2
-        docker: "quay.io/biocontainers/mulled-v2-23d9f7c700e78129a769e78521eb86d6b8341923:" + dockerTag
+
+        docker: dockerImage
         memory: ceil(memory * memoryMultiplier)
     }
 }
@@ -135,7 +137,9 @@ task CollectRnaSeqMetrics {
 
         Int memory = 8
         Float memoryMultiplier = 4.0
-        String dockerTag = "8dde04faba6c9ac93fae7e846af3bafd2c331b3b-0"
+        # https://raw.githubusercontent.com/BioContainers/multi-package-containers/80886dfea00f3cd9e7ae2edf4fc42816a10e5403/combinations/mulled-v2-23d9f7c700e78129a769e78521eb86d6b8341923%3A8dde04faba6c9ac93fae7e846af3bafd2c331b3b-0.tsv
+        # Contains r-base=3.4.1,picard=2.18.2
+        String dockerImage = "quay.io/biocontainers/mulled-v2-23d9f7c700e78129a769e78521eb86d6b8341923:8dde04faba6c9ac93fae7e846af3bafd2c331b3b-0"
     }
 
     command {
@@ -156,9 +160,7 @@ task CollectRnaSeqMetrics {
     }
 
     runtime {
-        # https://raw.githubusercontent.com/BioContainers/multi-package-containers/80886dfea00f3cd9e7ae2edf4fc42816a10e5403/combinations/mulled-v2-23d9f7c700e78129a769e78521eb86d6b8341923%3A8dde04faba6c9ac93fae7e846af3bafd2c331b3b-0.tsv
-        # Contains r-base=3.4.1,picard=2.18.2
-        docker: "quay.io/biocontainers/mulled-v2-23d9f7c700e78129a769e78521eb86d6b8341923:" + dockerTag
+        docker: dockerImage
         memory: ceil(memory * memoryMultiplier)
     }
 }
@@ -176,7 +178,7 @@ task CollectTargetedPcrMetrics {
 
         Int memory = 4
         Float memoryMultiplier = 3.0
-        String dockerTag = "2.18.26--0"
+        String dockerImage = "quay.io/biocontainers/picard:2.18.26--0"
     }
 
     command {
@@ -200,7 +202,7 @@ task CollectTargetedPcrMetrics {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/picard:" + dockerTag
+        docker: dockerImage
         memory: ceil(memory * memoryMultiplier)
     }
 }
@@ -214,7 +216,7 @@ task GatherBamFiles {
 
         Int memory = 4
         Float memoryMultiplier = 3.0
-        String dockerTag = "2.18.26--0"
+        String dockerImage = "quay.io/biocontainers/picard:2.18.26--0"
     }
 
     command {
@@ -235,7 +237,7 @@ task GatherBamFiles {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/picard:" + dockerTag
+        docker: dockerImage
         memory: ceil(memory * memoryMultiplier)
     }
 }
@@ -248,7 +250,7 @@ task GatherVcfs {
 
         Int memory = 4
         Float memoryMultiplier = 3.0
-        String dockerTag = "2.18.26--0"
+        String dockerImage = "quay.io/biocontainers/picard:2.18.26--0"
     }
 
     command {
@@ -265,7 +267,7 @@ task GatherVcfs {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/picard:" + dockerTag
+        docker: dockerImage
         memory: ceil(memory * memoryMultiplier)
     }
 }
@@ -280,7 +282,7 @@ task MarkDuplicates {
 
         Int memory = 8
         Float memoryMultiplier = 3.0
-        String dockerTag = "2.18.26--0"
+        String dockerImage = "quay.io/biocontainers/picard:2.18.26--0"
 
         # The program default for READ_NAME_REGEX is appropriate in nearly every case.
         # Sometimes we wish to supply "null" in order to turn off optical duplicate detection
@@ -319,7 +321,7 @@ task MarkDuplicates {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/picard:" + dockerTag
+        docker: dockerImage
         memory: ceil(memory * memoryMultiplier)
     }
 }
@@ -333,7 +335,7 @@ task MergeVCFs {
 
         Int memory = 8
         Float memoryMultiplier = 3.0
-        String dockerTag = "2.18.26--0"
+        String dockerImage = "quay.io/biocontainers/picard:2.18.26--0"
     }
 
     # Using MergeVcfs instead of GatherVcfs so we can create indices
@@ -354,7 +356,7 @@ task MergeVCFs {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/picard:" + dockerTag
+        docker: dockerImage
         memory: ceil(memory * memoryMultiplier)
     }
 }
@@ -403,7 +405,7 @@ task ScatterIntervalList {
 
         Int memory = 4
         Float memoryMultiplier = 3.0
-        String dockerTag = "2.18.26--0"
+        String dockerImage = "quay.io/biocontainers/picard:2.18.26--0"
     }
 
     command {
@@ -425,7 +427,7 @@ task ScatterIntervalList {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/picard:" + dockerTag
+        docker: dockerImage
         memory: ceil(memory * memoryMultiplier)
     }
 }
@@ -438,7 +440,7 @@ task SortVcf {
 
         Int memory = 8
         Float memoryMultiplier = 3.0
-        String dockerTag = "2.18.26--0"
+        String dockerImage = "quay.io/biocontainers/picard:2.18.26--0"
         }
 
 
@@ -458,7 +460,7 @@ task SortVcf {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/picard:" + dockerTag
+        docker: dockerImage
         memory: ceil(memory * memoryMultiplier)
     }
 }
\ No newline at end of file
diff --git a/samtools.wdl b/samtools.wdl
index 3b0024683cff468e19076ba597f2661694dea9ef..09f3fc4100b516748196f728061883cdd17b13d8 100644
--- a/samtools.wdl
+++ b/samtools.wdl
@@ -6,13 +6,14 @@ task BgzipAndIndex {
         String outputDir
         String type = "vcf"
 
-        String dockerTag = "0.2.6--ha92aebf_0"
+        String dockerImage = "quay.io/biocontainers/tabix:0.2.6--ha92aebf_0"
     }
 
     String outputGz = outputDir + "/" + basename(inputFile) + ".gz"
 
     command {
         set -e
+        mkdir -p $(dirname ~{outputGz})
         bgzip -c ~{inputFile} > ~{outputGz}
         tabix ~{outputGz} -p ~{type}
     }
@@ -23,29 +24,40 @@ task BgzipAndIndex {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/tabix:" + dockerTag
+       docker: dockerImage
     }
 }
 
 task Index {
     input {
         File bamFile
-        String bamIndexPath
-
-        String dockerTag = "1.8--h46bd0b3_5"
+        String outputBamPath = basename(bamFile)
+        String dockerImage = "quay.io/biocontainers/samtools:1.8--h46bd0b3_5"
     }
 
+    # Select_first is needed, otherwise womtool validate fails.
+    String bamIndexPath = sub(select_first([outputBamPath]), "\.bam$", ".bai")
+
     command {
-        samtools index ~{bamFile} ~{bamIndexPath}
+        bash -c '
+        set -e
+        # Make sure outputBamPath does not exist.
+        if [ ! -f ~{outputBamPath} ]
+        then
+            mkdir -p $(dirname ~{outputBamPath})
+            ln ~{bamFile} ~{outputBamPath}
+        fi
+        samtools index ~{outputBamPath} ~{bamIndexPath}
+        '
     }
 
     output {
-        File indexedBam = bamFile
-        File index = bamIndexPath
+        File indexedBam = outputBamPath
+        File index =  bamIndexPath
     }
 
     runtime {
-        docker: "quay.io/biocontainers/samtools:" + dockerTag
+        docker: dockerImage
     }
 }
 
@@ -55,7 +67,7 @@ task Merge {
         String outputBamPath = "merged.bam"
         Boolean force = true
 
-        String dockerTag = "1.8--h46bd0b3_5"
+        String dockerImage = "quay.io/biocontainers/samtools:1.8--h46bd0b3_5"
     }
     String indexPath = sub(outputBamPath, "\.bam$",".bai")
 
@@ -72,7 +84,7 @@ task Merge {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/samtools:" + dockerTag
+        docker: dockerImage
     }
 }
 
@@ -81,10 +93,12 @@ task Markdup {
         File inputBam
         String outputBamPath
 
-        String dockerTag = "1.8--h46bd0b3_5"
+        String dockerImage = "quay.io/biocontainers/samtools:1.8--h46bd0b3_5"
     }
 
     command {
+        set -e
+        mkdir -p $(dirname ~{outputBamPath})
         samtools markdup ~{inputBam} ~{outputBamPath}
     }
 
@@ -93,7 +107,7 @@ task Markdup {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/samtools:" + dockerTag
+        docker: dockerImage
     }
 }
 
@@ -102,7 +116,7 @@ task Flagstat {
         File inputBam
         String outputPath
 
-        String dockerTag = "1.8--h46bd0b3_5"
+        String dockerImage = "quay.io/biocontainers/samtools:1.8--h46bd0b3_5"
     }
 
     command {
@@ -116,7 +130,7 @@ task Flagstat {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/samtools:" + dockerTag
+        docker: dockerImage
     }
 }
 
@@ -135,7 +149,7 @@ task Fastq {
 
         Int threads = 1
         Int memory = 1
-        String dockerTag = "1.8--h46bd0b3_5"
+        String dockerImage = "quay.io/biocontainers/samtools:1.8--h46bd0b3_5"
     }
 
     command {
@@ -162,7 +176,7 @@ task Fastq {
     runtime {
         cpu: threads
         memory: memory
-        docker: "quay.io/biocontainers/samtools:" + dockerTag
+        docker: dockerImage
     }
 
     parameter_meta {
@@ -181,7 +195,7 @@ task Tabix {
         File inputFile
         String outputFilePath = "indexed.vcf.gz"
         String type = "vcf"
-        String dockerTag = "0.2.6--ha92aebf_0"
+        String dockerImage = "quay.io/biocontainers/tabix:0.2.6--ha92aebf_0"
     }
     # FIXME: It is better to do the indexing on VCF creation. Not in a separate task. With file localization this gets hairy fast.
     command {
@@ -200,7 +214,7 @@ task Tabix {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/tabix:" + dockerTag
+       docker: dockerImage
     }
 }
 
@@ -218,10 +232,12 @@ task View {
 
         Int threads = 1
         Int memory = 1
-        String dockerTag = "1.8--h46bd0b3_5"
+        String dockerImage = "quay.io/biocontainers/samtools:1.8--h46bd0b3_5"
     }
 
     command {
+        set -e
+        mkdir -p $(dirname ~{outputFileName})
         samtools view \
         ~{"-T " + referenceFasta} \
         ~{"-o " + outputFileName} \
@@ -242,6 +258,6 @@ task View {
     runtime {
         cpu: threads
         memory: memory
-        docker: "quay.io/biocontainers/samtools:" + dockerTag
+        docker: dockerImage
     }
 }
diff --git a/somaticseq.wdl b/somaticseq.wdl
index 77d068191c3299c1a7ef67c79ee220e86c8c8533..d1163b4a1fcda41b45f9e3a12e7eb5b2ad16c882 100644
--- a/somaticseq.wdl
+++ b/somaticseq.wdl
@@ -1,7 +1,5 @@
 version 1.0
 
-import "common.wdl" as common
-
 task ParallelPaired {
     input {
         String installDir = "/opt/somaticseq" #the location in the docker image
@@ -9,11 +7,14 @@ task ParallelPaired {
         File? classifierSNV
         File? classifierIndel
         String outputDir
-        Reference reference
+        File referenceFasta
+        File referenceFastaFai
         File? inclusionRegion
         File? exclusionRegion
-        IndexedBamFile tumorBam
-        IndexedBamFile normalBam
+        File tumorBam
+        File tumorBamIndex
+        File normalBam
+        File normalBamIndex
         File? mutect2VCF
         File? varscanSNV
         File? varscanIndel
@@ -28,6 +29,7 @@ task ParallelPaired {
         File? strelkaIndel
 
         Int threads = 1
+        String dockerImage = "lethalfang/somaticseq:3.1.0"
     }
 
     command {
@@ -35,13 +37,13 @@ task ParallelPaired {
         ~{"--classifier-snv " + classifierSNV} \
         ~{"--classifier-indel " + classifierIndel} \
         --output-directory ~{outputDir} \
-        --genome-reference ~{reference.fasta} \
+        --genome-reference ~{referenceFasta} \
         ~{"--inclusion-region " + inclusionRegion} \
         ~{"--exclusion-region " + exclusionRegion} \
         --threads ~{threads} \
         paired \
-        --tumor-bam-file ~{tumorBam.file} \
-        --normal-bam-file ~{normalBam.file} \
+        --tumor-bam-file ~{tumorBam} \
+        --normal-bam-file ~{normalBam} \
         ~{"--mutect2-vcf " + mutect2VCF} \
         ~{"--varscan-snv " + varscanSNV} \
         ~{"--varscan-indel " + varscanIndel} \
@@ -69,7 +71,7 @@ task ParallelPaired {
 
     runtime {
         cpu: threads
-        docker: "lethalfang/somaticseq:3.1.0"
+        docker: dockerImage
     }
 }
 
@@ -80,11 +82,14 @@ task ParallelPairedTrain {
         File truthSNV
         File truthIndel
         String outputDir
-        Reference reference
+        File referenceFasta
+        File referenceFastaFai
         File? inclusionRegion
         File? exclusionRegion
-        IndexedBamFile tumorBam
-        IndexedBamFile normalBam
+        File tumorBam
+        File tumorBamIndex
+        File normalBam
+        File normalBamIndex
         File? mutect2VCF
         File? varscanSNV
         File? varscanIndel
@@ -99,6 +104,7 @@ task ParallelPairedTrain {
         File? strelkaIndel
 
         Int threads = 1
+        String dockerImage = "lethalfang/somaticseq:3.1.0"
     }
 
     command {
@@ -107,13 +113,13 @@ task ParallelPairedTrain {
         --truth-snv ~{truthSNV} \
         --truth-indel ~{truthIndel} \
         --output-directory ~{outputDir} \
-        --genome-reference ~{reference.fasta} \
+        --genome-reference ~{referenceFasta} \
         ~{"--inclusion-region " + inclusionRegion} \
         ~{"--exclusion-region " + exclusionRegion} \
         --threads ~{threads} \
         paired \
-        --tumor-bam-file ~{tumorBam.file} \
-        --normal-bam-file ~{normalBam.file} \
+        --tumor-bam-file ~{tumorBam} \
+        --normal-bam-file ~{normalBam} \
         ~{"--mutect2-vcf " + mutect2VCF} \
         ~{"--varscan-snv " + varscanSNV} \
         ~{"--varscan-indel " + varscanIndel} \
@@ -139,7 +145,7 @@ task ParallelPairedTrain {
 
     runtime {
         cpu: threads
-        docker: "lethalfang/somaticseq:3.1.0"
+        docker: dockerImage
     }
 }
 
@@ -150,10 +156,12 @@ task ParallelSingle {
         File? classifierSNV
         File? classifierIndel
         String outputDir
-        Reference reference
+        File referenceFasta
+        File referenceFastaFai
         File? inclusionRegion
         File? exclusionRegion
-        IndexedBamFile bam
+        File bam
+        File bamIndex
         File? mutect2VCF
         File? varscanVCF
         File? vardictVCF
@@ -162,6 +170,7 @@ task ParallelSingle {
         File? strelkaVCF
 
         Int threads = 1
+        String dockerImage = "lethalfang/somaticseq:3.1.0"
     }
 
     command {
@@ -169,12 +178,12 @@ task ParallelSingle {
         ~{"--classifier-snv " + classifierSNV} \
         ~{"--classifier-indel " + classifierIndel} \
         --output-directory ~{outputDir} \
-        --genome-reference ~{reference.fasta} \
+        --genome-reference ~{referenceFasta} \
         ~{"--inclusion-region " + inclusionRegion} \
         ~{"--exclusion-region " + exclusionRegion} \
         --threads ~{threads} \
         single \
-        --bam-file ~{bam.file} \
+        --bam-file ~{bam} \
         ~{"--mutect2-vcf " + mutect2VCF} \
         ~{"--varscan-vcf " + varscanVCF} \
         ~{"--vardict-vcf " + vardictVCF} \
@@ -196,7 +205,7 @@ task ParallelSingle {
 
     runtime {
         cpu: threads
-        docker: "lethalfang/somaticseq:3.1.0"
+        docker: dockerImage
     }
 }
 
@@ -207,10 +216,12 @@ task ParallelSingleTrain {
         File truthSNV
         File truthIndel
         String outputDir
-        Reference reference
+        File referenceFasta
+        File referenceFastaFai
         File? inclusionRegion
         File? exclusionRegion
-        IndexedBamFile bam
+        File bam
+        File bamIndex
         File? mutect2VCF
         File? varscanVCF
         File? vardictVCF
@@ -219,6 +230,7 @@ task ParallelSingleTrain {
         File? strelkaVCF
 
         Int threads = 1
+        String dockerImage = "lethalfang/somaticseq:3.1.0"
     }
 
     command {
@@ -227,12 +239,12 @@ task ParallelSingleTrain {
         --truth-snv ~{truthSNV} \
         --truth-indel ~{truthIndel} \
         --output-directory ~{outputDir} \
-        --genome-reference ~{reference.fasta} \
+        --genome-reference ~{referenceFasta} \
         ~{"--inclusion-region " + inclusionRegion} \
         ~{"--exclusion-region " + exclusionRegion} \
         --threads ~{threads} \
         single \
-        --bam-file ~{bam.file} \
+        --bam-file ~{bam} \
         ~{"--mutect2-vcf " + mutect2VCF} \
         ~{"--varscan-vcf " + varscanVCF} \
         ~{"--vardict-vcf " + vardictVCF} \
@@ -252,6 +264,6 @@ task ParallelSingleTrain {
 
     runtime {
         cpu: threads
-        docker: "lethalfang/somaticseq:3.1.0"
+        docker: dockerImage
     }
 }
diff --git a/star.wdl b/star.wdl
index edc57155ee89b240e7aed5644fc3294159899406..e518715a82dc3b5adab775d3afba4391ec570c70 100644
--- a/star.wdl
+++ b/star.wdl
@@ -16,7 +16,7 @@ task Star {
 
         Int runThreadN = 4
         Int memory = 48
-        String dockerTag = "2.6.0c--0"
+        String dockerImage = "quay.io/biocontainers/star:2.6.0c--0"
     }
 
     #TODO Needs to be extended for all possible output extensions
@@ -48,7 +48,7 @@ task Star {
         # Return memory per CPU here due to SGE backend.
         # Can also work with slurms mem-per-cpu flag
         memory: (memory / runThreadN) + 1
-        docker: "quay.io/biocontainers/star:" + dockerTag
+        docker: dockerImage
     }
 }
 
diff --git a/strelka.wdl b/strelka.wdl
index 398631100824f8586c970cb327346f8886337e6d..f5cd525df88e1569b17c9f304264fc1cb5d202c1 100644
--- a/strelka.wdl
+++ b/strelka.wdl
@@ -4,10 +4,11 @@ import "common.wdl" as common
 
 task Germline {
     input {
-        String runDir
+        String runDir = "./strelka_run"
         Array[File]+ bams
         Array[File]+ indexes
-        Reference reference
+        File referenceFasta
+        File referenceFastaFai
         File? callRegions
         File? callRegionsIndex
         Boolean exome = false
@@ -15,14 +16,13 @@ task Germline {
 
         Int cores = 1
         Int memory = 4
-        String dockerTag = "2.9.7--0"
+        String dockerImage = "quay.io/biocontainers/strelka:2.9.7--0"
     }
 
     command {
-        set -e
         configureStrelkaGermlineWorkflow.py \
         --bam ~{sep=" --bam " bams} \
-        --ref ~{reference.fasta} \
+        --ref ~{referenceFasta} \
         --runDir ~{runDir} \
         ~{"--callRegions " + callRegions} \
         ~{true="--exome" false="" exome} \
@@ -40,7 +40,7 @@ task Germline {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/strelka:" + dockerTag
+        docker: dockerImage
         cpu: cores
         memory: memory
     }
@@ -48,35 +48,34 @@ task Germline {
 
 task Somatic {
     input {
-        String runDir
-        IndexedBamFile normalBam
-        IndexedBamFile tumorBam
-        Reference reference
+        String runDir = "./strelka_run"
+        File normalBam
+        File normalBamIndex
+        File tumorBam
+        File tumorBamIndex
+        File referenceFasta
+        File referenceFastaFai
         File? callRegions
         File? callRegionsIndex
-        IndexedVcfFile? indelCandidates
+        File? indelCandidatesVcf
+        File? indelCandidatesVcfIndex
         Boolean exome = false
 
         Int cores = 1
         Int memory = 4
-        String dockerTag = "2.9.7--0"
+        String dockerImage = "quay.io/biocontainers/strelka:2.9.7--0"
 
         File? doNotDefineThis #FIXME
     }
 
-    File? indelCandidatesFile = if (defined(indelCandidates))
-        then select_first([indelCandidates]).file
-        else doNotDefineThis
-
     command {
-        set -e
         configureStrelkaSomaticWorkflow.py \
-        --normalBam ~{normalBam.file} \
-        --tumorBam ~{tumorBam.file} \
-        --ref ~{reference.fasta} \
+        --normalBam ~{normalBam} \
+        --tumorBam ~{tumorBam} \
+        --ref ~{referenceFasta} \
         --runDir ~{runDir} \
         ~{"--callRegions " + callRegions} \
-        ~{"--indelCandidates " + indelCandidatesFile} \
+        ~{"--indelCandidates " + indelCandidatesVcf} \
         ~{true="--exome" false="" exome}
 
         ~{runDir}/runWorkflow.py \
@@ -93,7 +92,7 @@ task Somatic {
     }
 
     runtime {
-        docker: "quay.io/biocontainers/strelka:" + dockerTag
+        docker: dockerImage
         cpu: cores
         memory: memory
     }
diff --git a/stringtie.wdl b/stringtie.wdl
index a66101d116f3f5fb64c794307b76bb04f61271dc..9c7c1013c124187ba777629099d92508a68483de 100644
--- a/stringtie.wdl
+++ b/stringtie.wdl
@@ -1,10 +1,9 @@
 version 1.0
 
-import "common.wdl"
-
 task Stringtie {
     input {
-        IndexedBamFile bamFile
+        File bam
+        File bamIndex
         File? referenceGtf
         Boolean skipNovelTranscripts = false
         String assembledTranscriptsFile
@@ -14,7 +13,7 @@ task Stringtie {
 
         Int threads = 1
         Int memory = 10
-        String dockerTag = "1.3.4--py35_0"
+        String dockerImage = "quay.io/biocontainers/stringtie:1.3.4--py35_0"
     }
 
     command {
@@ -28,7 +27,7 @@ task Stringtie {
         ~{true="--fr" false="" secondStranded} \
         -o ~{assembledTranscriptsFile} \
         ~{"-A " + geneAbundanceFile} \
-        ~{bamFile.file}
+        ~{bam}
     }
 
     output {
@@ -39,7 +38,7 @@ task Stringtie {
     runtime {
         cpu: threads
         memory: memory
-        docker: "quay.io/biocontainers/stringtie:" + dockerTag
+        docker: dockerImage
     }
 }
 
@@ -57,7 +56,7 @@ task Merge {
         String? label
 
         Int memory = 10
-        String dockerTag = "1.3.4--py35_0"
+        String dockerImage = "quay.io/biocontainers/stringtie:1.3.4--py35_0"
     }
 
     command {
@@ -82,6 +81,6 @@ task Merge {
 
     runtime {
         memory: memory
-        docker: "quay.io/biocontainers/stringtie:" + dockerTag
+        docker: dockerImage
     }
 }
diff --git a/vardict.wdl b/vardict.wdl
index 05398995ee139420fb40a6dd7983f969c5148a0b..0cbf38acd7a69f22e4b760f7f17932f585a52852 100644
--- a/vardict.wdl
+++ b/vardict.wdl
@@ -5,10 +5,13 @@ import "common.wdl"
 task VarDict {
     input {
         String tumorSampleName
-        IndexedBamFile tumorBam
+        File tumorBam
+        File tumorBamIndex
         String? normalSampleName
-        IndexedBamFile? normalBam
-        Reference reference
+        File? normalBam
+        File? normalBamIndex
+        File referenceFasta
+        File referenceFastaFai
         File bedFile
         String outputVcf
 
@@ -20,23 +23,18 @@ task VarDict {
         Int threads = 1
         Int memory = 16
         Float memoryMultiplier = 2.5
-        String dockerTag = "1.5.8--1"
+        String dockerImage = "quay.io/biocontainers/vardict-java:1.5.8--1"
 
-        File? doNotDefineThis #FIXME
     }
 
-    File? normalBamFile = if defined(normalBam)
-        then select_first([normalBam]).file
-        else doNotDefineThis
-
     command {
         set -e -o pipefail
         export JAVA_OPTS="-Xmx~{memory}G"
         vardict-java \
         ~{"-th " + threads} \
-        -G ~{reference.fasta} \
+        -G ~{referenceFasta} \
         -N ~{tumorSampleName} \
-        -b "~{tumorBam.file}~{"|" + normalBamFile}" \
+        -b "~{tumorBam}~{"|" + normalBam}" \
         ~{true="" false="-z" defined(normalBam)} \
         -c ~{chromosomeColumn} \
         -S ~{startColumn} \
@@ -57,6 +55,6 @@ task VarDict {
     runtime {
         cpu: threads + 2
         memory: ceil(memory * memoryMultiplier)
-        docker: "quay.io/biocontainers/vardict-java:" + dockerTag
+        docker: dockerImage
     }
 }