diff --git a/runs/kallisto_quant/kallisto_quant.yml b/runs/kallisto_quant/kallisto_quant.yml
index 3a700dde637416106f587147d1a6104ecdd6326d..44f6bfe71211805c278a75c660038635fb68dce0 100644
--- a/runs/kallisto_quant/kallisto_quant.yml
+++ b/runs/kallisto_quant/kallisto_quant.yml
@@ -1,11 +1,11 @@
 cores: 4
-sh_script:
+out_folder: ./kallisto_results
+in_kallisto_index:
   class: File
-  path: ../../workflows/kallisto_quant.sh
-arc_root: /Users/dominikbrilhaus/gitlab_dataplant/samplearc_rnaseq
-out_folder: runs/kallisto_quant/kallisto_results
-in_kallisto_index: runs/kallisto_index/kallisto_index
-in_fastq_folder: assays/Talinum_RNASeq_minimal/dataset
+  path: ../kallisto_index/out/kallisto_index
+in_fastq_dir: 
+  class: Directory
+  path: ../../assays/Talinum_RNASeq_minimal/dataset
 kallisto_bootstrap: 100
 kallisto_threads: 4
 kallisto_fragmentLength: 200
diff --git a/runs/kallisto_quant/run.cwl b/runs/kallisto_quant/run.cwl
new file mode 100644
index 0000000000000000000000000000000000000000..a5e9b88dbd41da7e29d83608f59bf32e40410e09
--- /dev/null
+++ b/runs/kallisto_quant/run.cwl
@@ -0,0 +1,36 @@
+#!/usr/bin/env cwl-runner
+cwlVersion: v1.2.0-dev1
+class: Workflow
+inputs:
+  out_folder:
+    type: string
+  in_kallisto_index:
+    type: File
+  in_fastq_dir:
+    type: Directory
+  kallisto_bootstrap:
+    type: int
+  kallisto_threads:
+    type: int
+  kallisto_fragmentLength:
+    type: int
+  kallisto_stdDev:
+    type: int
+outputs:
+  out_dir:
+    type:
+      type: array
+      items: Directory
+    outputSource: kallisto_quant/outdir
+steps:
+  kallisto_quant:
+    run: ../../workflows/kallisto_quant/workflow.cwl
+    in:
+      out_folder: out_folder
+      in_kallisto_index: in_kallisto_index
+      in_fastq_dir: in_fastq_dir
+      kallisto_bootstrap: kallisto_bootstrap
+      kallisto_threads: kallisto_threads
+      kallisto_fragmentLength: kallisto_fragmentLength
+      kallisto_stdDev: kallisto_stdDev
+    out: [outdir]
\ No newline at end of file
diff --git a/workflows/kallisto_quant/kallisto_quant.sh b/workflows/kallisto_quant/kallisto_quant.sh
index c1217416f77460b75944ccf50bb7cf9632a93ba8..124698c9db7ad01a8e73bc3a371ac69221e576d7 100644
--- a/workflows/kallisto_quant/kallisto_quant.sh
+++ b/workflows/kallisto_quant/kallisto_quant.sh
@@ -20,26 +20,25 @@
 #### Read arguments from CLI
 ################################################
 
-arc_root=$1
-out_folder=$2
-in_kallisto_index=$3
-in_fastq_folder=$4
-kallisto_bootstrap=$5
-kallisto_threads=$6
-kallisto_fragmentLength=$7
-kallisto_stdDev=$8
+out_folder=$1
+in_kallisto_index=$2
+in_fastq_folder=$3
+kallisto_bootstrap=$4
+kallisto_threads=$5
+kallisto_fragmentLength=$6
+kallisto_stdDev=$7
 
 ################################################
 #### If it does not exist, create out dir
 ################################################
 
-mkdir -p "$arc_root/$out_folder/"
+mkdir -p "$out_folder"
 
 ################################################
 #### Store fastq files in variable
 ################################################
 
-fastq_files=$(ls "${arc_root}"/"${in_fastq_folder}"/*fastq*)
+fastq_files=$(ls "${in_fastq_folder}"/*fastq*)
 
 ################################################
 #### Loop over fastq files and quantify reads
@@ -52,7 +51,7 @@ for j in $fastq_files; do
 	
 	echo $sampleName
 	
-	kallisto quant --single -b $kallisto_bootstrap -t $kallisto_threads -l $kallisto_fragmentLength -s $kallisto_stdDev -i "$arc_root/$in_kallisto_index" -o "$arc_root/$out_folder/$sampleName" $j
+	kallisto quant --single -b $kallisto_bootstrap -t $kallisto_threads -l $kallisto_fragmentLength -s $kallisto_stdDev -i "$in_kallisto_index" -o "$out_folder/$sampleName" $j
 
 	echo 'Kallisto done'
 
diff --git a/workflows/kallisto_quant/workflow.cwl b/workflows/kallisto_quant/workflow.cwl
index 9259357a2df7043a94a49eba13d0d1b1f534db28..5b45601a22367bdc63c4a027ef33bf15c3b6dda2 100644
--- a/workflows/kallisto_quant/workflow.cwl
+++ b/workflows/kallisto_quant/workflow.cwl
@@ -1,45 +1,49 @@
 #!/usr/bin/env cwl-runner
 
-cwlVersion: v1.2
+cwlVersion: v1.2.0-dev1
 class: CommandLineTool
-
+hints:
+  DockerRequirement:
+    dockerPull: zlskidmore/kallisto:0.48.0
+requirements:
+- class: InitialWorkDirRequirement
+  listing:
+  - class: File
+    location: kallisto_quant.sh
+baseCommand:
+- bash
+arguments:
+- position: 0
+  valueFrom: ./kallisto_quant.sh
 inputs:
-- id: sh_script
-  type: File
-  inputBinding:
-    position: 0
-- id: arc_root
+- id: out_folder
   type: string
   inputBinding:
     position: 1
-- id: out_folder
-  type: string
+- id: in_kallisto_index
+  type: File
   inputBinding:
     position: 2
-- id: in_kallisto_index
-  type: string
+- id: in_fastq_dir
+  type: Directory
   inputBinding:
     position: 3
-- id: in_fastq_folder
-  type: string
-  inputBinding:
-    position: 4
 - id: kallisto_bootstrap
   type: int
   inputBinding:
-    position: 5
+    position: 4
 - id: kallisto_threads
   type: int
   inputBinding:
-    position: 6
+    position: 5
 - id: kallisto_fragmentLength
   type: int
   inputBinding:
-    position: 7
+    position: 6
 - id: kallisto_stdDev
   type: int
   inputBinding:
-    position: 8
+    position: 7
 
 outputs:
 - id: outdir
@@ -48,6 +52,3 @@ outputs:
     items: Directory
   outputBinding:
     glob: $(runtime.outdir)/$(inputs.out_folder)
-
-baseCommand:
-- bash