diff --git a/CHANGELOG.md b/CHANGELOG.md
index 797ca07bfe6284a41ee78f658844b6ed0de36185..3dfe8b8d9a70970ad39ffbe6f414114ed1e61fd2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,8 @@ that users understand how the changes affect the new version.
 -->
 version 3.1.0
 ---------------------------
++ Isoseq3: Remove cp commands and other bash magic, file naming is now solved by pipeline.
++ Lima: Replace mv command with cp.
 + Add WDL task for smoove (lumpy) sv-caller.
 + Default threads for BWA in bwa.Kit task: 4. Samtools sort in the
   same task: 1. Output BAM compression level to 1.
diff --git a/ccs.wdl b/ccs.wdl
index 39bb0a19578e353a596c471e7490556de89896a9..3a8f887947faab7bc3ee898cf06fcd6ca28586d8 100644
--- a/ccs.wdl
+++ b/ccs.wdl
@@ -31,8 +31,8 @@ task CCS {
         File subreadsFile
         String outputPrefix
         
-        Int cores = 4
-        String memory = "10G"
+        Int cores = 2
+        String memory = "2G"
         String dockerImage = "quay.io/biocontainers/pbccs:4.2.0--0"
     }
 
diff --git a/isoseq3.wdl b/isoseq3.wdl
index 8cc0db8fe0456f5626ee4eebb8bb586846a370d1..44005a408d7ed2694203e601be58c540957506f8 100644
--- a/isoseq3.wdl
+++ b/isoseq3.wdl
@@ -27,50 +27,35 @@ task Refine {
         String logLevel = "WARN"
         File inputBamFile
         File primerFile
-        String outputPrefix
+        String outputDir
+        String outputNamePrefix
 
-        Int cores = 4
-        String memory = "10G"
+        Int cores = 2
+        String memory = "1G"
         String dockerImage = "quay.io/biocontainers/isoseq3:3.3.0--0"
     }
 
     command <<<
         set -e
-        mkdir -p "$(dirname ~{outputPrefix})"
-
-        # Create a unique output name base on the input bam file.
-        bamBasename="$(basename ~{inputBamFile})"
-        bamNewName="${bamBasename/fl/flnc}"
-        folderDirname="$(dirname ~{outputPrefix})"
-        combinedOutput="${folderDirname}/${bamNewName}"
-
+        mkdir -p "$(dirname ~{outputDir})"
         isoseq3 refine \
         --min-polya-length ~{minPolyAlength} \
         ~{true="--require-polya" false="" requirePolyA} \
         --log-level ~{logLevel} \
         --num-threads ~{cores} \
-        --log-file "${bamNewName}.stderr.log" \
+        --log-file "~{outputDir}/~{outputNamePrefix}.stderr.log" \
         ~{inputBamFile} \
         ~{primerFile} \
-        ${bamNewName}
-
-        # Copy commands below are needed because naming schema for Refine output
-        # can not be correctly handled in the WDL output section.
-        cp "${bamNewName}" "${combinedOutput}"
-        cp "${bamNewName}.pbi" "${combinedOutput}.pbi"
-        cp "${bamNewName/bam/consensusreadset}.xml" "${combinedOutput/bam/consensusreadset}.xml"
-        cp "${bamNewName/bam/filter_summary}.json" "${combinedOutput/bam/filter_summary}.json"
-        cp "${bamNewName/bam/report}.csv" "${combinedOutput/bam/report}.csv"
-        cp "${bamNewName}.stderr.log" "${combinedOutput}.stderr.log"
+        "~{outputDir}/~{outputNamePrefix}.bam"
     >>>
 
     output {
-        Array[File] outputFLNCfile = glob("*.bam")
-        Array[File] outputFLNCindexFile = glob("*.bam.pbi")
-        Array[File] outputConsensusReadsetFile = glob("*.consensusreadset.xml")
-        Array[File] outputFilterSummaryFile = glob("*.filter_summary.json")
-        Array[File] outputReportFile = glob("*.report.csv")
-        Array[File] outputSTDERRfile = glob("*.stderr.log")
+        File outputFLNCfile = outputDir + "/" + outputNamePrefix + ".bam"
+        File outputFLNCindexFile = outputDir + "/" + outputNamePrefix + ".bam.pbi"
+        File outputConsensusReadsetFile = outputDir + "/" + outputNamePrefix + ".consensusreadset.xml"
+        File outputFilterSummaryFile = outputDir + "/" + outputNamePrefix + ".filter_summary.json"
+        File outputReportFile = outputDir + "/" + outputNamePrefix + ".report.csv"
+        File outputSTDERRfile = outputDir + "/" + outputNamePrefix + ".stderr.log"
     }
 
     runtime {
@@ -86,7 +71,8 @@ task Refine {
         logLevel: {description: "Set log level. Valid choices: (TRACE, DEBUG, INFO, WARN, FATAL).", category: "advanced"}
         inputBamFile: {description: "BAM input file.", category: "required"}
         primerFile: {description: "Barcode/primer fasta file.", category: "required"}
-        outputPrefix: {description: "Output directory path + output file prefix.", category: "required"}
+        outputDir: {description: "Output directory path.", category: "required"}
+        outputNamePrefix: {description: "Basename of the output files.", category: "required"}
         cores: {description: "The number of cores to be used.", category: "advanced"}
         memory: {description: "The amount of memory available to the job.", 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"}
diff --git a/lima.wdl b/lima.wdl
index 747959a1eb9b1695ae891e178b36725d95204bed..ba8a5407fa1be7757beaff0b5bdb404016793352 100644
--- a/lima.wdl
+++ b/lima.wdl
@@ -48,8 +48,8 @@ task Lima {
         File barcodeFile
         String outputPrefix
         
-        Int cores = 4
-        String memory = "10G"
+        Int cores = 2
+        String memory = "2G"
         String dockerImage = "quay.io/biocontainers/lima:1.11.0--0"
     }
 
@@ -87,13 +87,13 @@ task Lima {
         ~{barcodeFile} \
         ~{basename(outputPrefix) + ".fl.bam"}
 
-        # Move commands below are needed because glob command does not find
+        # copy commands below are needed because glob command does not find
         # multiple bam/bam.pbi/subreadset.xml files when not located in working
         # directory.
-        mv "~{basename(outputPrefix)}.fl.json" "~{outputPrefix}.fl.json"
-        mv "~{basename(outputPrefix)}.fl.lima.counts" "~{outputPrefix}.fl.lima.counts"
-        mv "~{basename(outputPrefix)}.fl.lima.report" "~{outputPrefix}.fl.lima.report"
-        mv "~{basename(outputPrefix)}.fl.lima.summary" "~{outputPrefix}.fl.lima.summary"
+        cp "~{basename(outputPrefix)}.fl.json" "~{outputPrefix}.fl.json"
+        cp "~{basename(outputPrefix)}.fl.lima.counts" "~{outputPrefix}.fl.lima.counts"
+        cp "~{basename(outputPrefix)}.fl.lima.report" "~{outputPrefix}.fl.lima.report"
+        cp "~{basename(outputPrefix)}.fl.lima.summary" "~{outputPrefix}.fl.lima.summary"
     }
 
     output {
diff --git a/scripts b/scripts
index dfef7cb2555667126dc1751add414527240d71bc..b83da72b9b43b956a3062b78fb08044eb9fae464 160000
--- a/scripts
+++ b/scripts
@@ -1 +1 @@
-Subproject commit dfef7cb2555667126dc1751add414527240d71bc
+Subproject commit b83da72b9b43b956a3062b78fb08044eb9fae464