diff --git a/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/gatk/CatVariants.scala b/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/gatk/CatVariants.scala
new file mode 100644
index 0000000000000000000000000000000000000000..3044d3739fb73ad02c2c81c568aa54883e80aac4
--- /dev/null
+++ b/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/gatk/CatVariants.scala
@@ -0,0 +1,48 @@
+/**
+ * Biopet is built on top of GATK Queue for building bioinformatic
+ * pipelines. It is mainly intended to support LUMC SHARK cluster which is running
+ * SGE. But other types of HPC that are supported by GATK Queue (such as PBS)
+ * should also be able to execute Biopet tools and pipelines.
+ *
+ * Copyright 2014 Sequencing Analysis Support Core - Leiden University Medical Center
+ *
+ * Contact us at: sasc@lumc.nl
+ *
+ * A dual licensing mode is applied. The source code within this project that are
+ * not part of GATK Queue is freely available for non-commercial use under an AGPL
+ * license; For commercial users or users who do not want to follow the AGPL
+ * license, please contact us to obtain a separate license.
+ */
+package nl.lumc.sasc.biopet.extensions.gatk
+
+import java.io.File
+
+import nl.lumc.sasc.biopet.utils.config.Configurable
+import org.broadinstitute.gatk.utils.commandline.{Input, Output}
+
+
+class CatVariants(val root: Configurable) extends Gatk {
+  val analysisType = "CatVariants"
+
+  @Input(doc = "", required = true)
+  var inputFiles: List[File] = Nil
+
+  @Output(doc = "", required = true)
+  var outputFile: File = null
+
+  override def cmdLine = super.cmdLine +
+    (for (file <- inputFiles) yield {
+        required("-V", file)
+    }).mkString +
+    required("-o", outputFile)
+
+}
+
+object CatVariants {
+  def apply(root: Configurable, input: List[File], output: File): CatVariants = {
+    val cv = new CatVariants(root)
+    cv.inputFiles = input
+    cv.outputFile = output
+    cv
+  }
+}
\ No newline at end of file
diff --git a/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/delly/Delly.scala b/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/pipelines/shiva/Delly.scala
similarity index 77%
rename from public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/delly/Delly.scala
rename to public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/pipelines/shiva/Delly.scala
index b5fabe35e56555ba1723ab9270c04578b6bde23e..5f4a33cd67ec2ef4c0fad6329faf146c5f955f52 100644
--- a/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/delly/Delly.scala
+++ b/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/pipelines/shiva/Delly.scala
@@ -13,17 +13,19 @@
  * license; For commercial users or users who do not want to follow the AGPL
  * license, please contact us to obtain a separate license.
  */
-package nl.lumc.sasc.biopet.extensions.delly
+package nl.lumc.sasc.biopet.pipelines.shiva
 
 import java.io.File
 
-import nl.lumc.sasc.biopet.core.{ Reference, BiopetQScript, PipelineCommand }
-import nl.lumc.sasc.biopet.utils.config.Configurable
+import nl.lumc.sasc.biopet.core.summary.SummaryQScript
+import nl.lumc.sasc.biopet.core.{PipelineCommand, Reference}
 import nl.lumc.sasc.biopet.extensions.Ln
+import nl.lumc.sasc.biopet.extensions.delly.DellyCaller
+import nl.lumc.sasc.biopet.extensions.gatk.CatVariants
+import nl.lumc.sasc.biopet.utils.config.Configurable
 import org.broadinstitute.gatk.queue.QScript
-import org.broadinstitute.gatk.queue.extensions.gatk.CatVariants
 
-class Delly(val root: Configurable) extends QScript with BiopetQScript with Reference {
+class Delly(val root: Configurable) extends QScript with Reference with SummaryQScript {
   def this() = this(null)
 
   @Input(doc = "Input file (bam)")
@@ -47,9 +49,30 @@ class Delly(val root: Configurable) extends QScript with BiopetQScript with Refe
     if (outputVcf == null) outputVcf = new File(workDir, outputName + ".delly.vcf")
   }
 
+  override def summaryFile: File = new File(outputDir, "Delly.summary.json")
+
+  override def summaryFiles: Map[String, File] = Map.empty ++
+    Map("input" -> input) ++
+    Map("outputVCF" -> outputVcf)
+
+  override def summarySettings = {
+    Map(
+      "input" -> input,
+      "workDir" -> workDir,
+      "outputVCF" -> outputVcf,
+      "outputName" -> outputName,
+      "del" -> del,
+      "dup" -> dup,
+      "inv" -> inv,
+      "tra" -> tra
+    )
+  }
+
+
   def biopetScript() {
     // write the pipeline here
     logger.info("Configuring Delly pipeline")
+
     var outputFiles: Map[String, File] = Map()
     var vcfFiles: Map[String, File] = Map()
 
@@ -89,15 +112,13 @@ class Delly(val root: Configurable) extends QScript with BiopetQScript with Refe
     // we need to merge the vcf's
     val finalVCF = if (vcfFiles.size > 1) {
       // do merging
-      // CatVariants is a $org.broadinstitute.gatk.utils.commandline.CommandLineProgram$;
-      //TODO: convert to biopet extension
-      val variants = new CatVariants()
-      variants.variant = vcfFiles.values.toList
+      val variants = new CatVariants(this)
+      variants.inputFiles = vcfFiles.values.toList
       variants.outputFile = this.outputVcf
-      variants.reference = referenceFasta()
+      //      variants.reference = referenceFasta()
       // add the job
-      //add(variants)
-      Some(outputVcf)
+      add(variants)
+      Some(variants.outputFile)
     } else if (vcfFiles.size == 1) {
       // TODO: pretify this
       val ln = Ln(this, vcfFiles.head._2, this.outputVcf, relative = true)
@@ -110,8 +131,6 @@ class Delly(val root: Configurable) extends QScript with BiopetQScript with Refe
 }
 
 object Delly extends PipelineCommand {
-  override val pipeline = "/nl/lumc/sasc/biopet/extensions/svcallers/Delly/Delly.class"
-
   def apply(root: Configurable, input: File, workDir: File): Delly = {
     val dellyPipeline = new Delly(root)
     dellyPipeline.input = input
diff --git a/public/shiva/src/main/scala/nl/lumc/sasc/biopet/pipelines/shiva/ShivaSvCalling.scala b/public/shiva/src/main/scala/nl/lumc/sasc/biopet/pipelines/shiva/ShivaSvCalling.scala
index 79a5219751a35691885b4f61365f4d71b0333105..b707c60ff3c05ce08642ad0bca28809af7290488 100644
--- a/public/shiva/src/main/scala/nl/lumc/sasc/biopet/pipelines/shiva/ShivaSvCalling.scala
+++ b/public/shiva/src/main/scala/nl/lumc/sasc/biopet/pipelines/shiva/ShivaSvCalling.scala
@@ -17,10 +17,9 @@ package nl.lumc.sasc.biopet.pipelines.shiva
 
 import htsjdk.samtools.SamReaderFactory
 import nl.lumc.sasc.biopet.core.summary.SummaryQScript
-import nl.lumc.sasc.biopet.core.{ PipelineCommand, Reference, SampleLibraryTag }
+import nl.lumc.sasc.biopet.core.{PipelineCommand, Reference, SampleLibraryTag}
 import nl.lumc.sasc.biopet.extensions.breakdancer.Breakdancer
 import nl.lumc.sasc.biopet.extensions.clever.CleverCaller
-import nl.lumc.sasc.biopet.extensions.delly.Delly
 import nl.lumc.sasc.biopet.utils.Logging
 import nl.lumc.sasc.biopet.utils.config.Configurable
 import org.broadinstitute.gatk.queue.QScript
@@ -135,6 +134,7 @@ class ShivaSvCalling(val root: Configurable) extends QScript with SummaryQScript
         val delly = Delly(qscript, bamFile, dellyDir)
         delly.outputName = sample
         addAll(delly.functions)
+        addSummaryQScript(delly)
       }
     }
   }
diff --git a/public/yamsvp/src_old/main/scala/nl/lumc/sasc/biopet/pipelines/yamsvp/Yamsvp.scala b/public/yamsvp/src_old/main/scala/nl/lumc/sasc/biopet/pipelines/yamsvp/Yamsvp.scala
index a0ade5706206c60d9a1a470002c783d0b98a3590..59489d2caa89ac74af08b53c46b781f3e074760d 100644
--- a/public/yamsvp/src_old/main/scala/nl/lumc/sasc/biopet/pipelines/yamsvp/Yamsvp.scala
+++ b/public/yamsvp/src_old/main/scala/nl/lumc/sasc/biopet/pipelines/yamsvp/Yamsvp.scala
@@ -21,15 +21,15 @@ package nl.lumc.sasc.biopet.pipelines.yamsvp
 
 import java.io.File
 
-import nl.lumc.sasc.biopet.utils.config.Configurable
-import nl.lumc.sasc.biopet.core.{ MultiSampleQScript, PipelineCommand }
+import nl.lumc.sasc.biopet.core.{MultiSampleQScript, PipelineCommand}
 import nl.lumc.sasc.biopet.extensions.Ln
 import nl.lumc.sasc.biopet.extensions.breakdancer.Breakdancer
 import nl.lumc.sasc.biopet.extensions.clever.CleverCaller
 import nl.lumc.sasc.biopet.extensions.igvtools.IGVToolsCount
-import nl.lumc.sasc.biopet.extensions.sambamba.{ SambambaMarkdup, SambambaMerge }
+import nl.lumc.sasc.biopet.extensions.sambamba.{SambambaMarkdup, SambambaMerge}
+import nl.lumc.sasc.biopet.pipelines.shiva.Delly
+import nl.lumc.sasc.biopet.utils.config.Configurable
 //import nl.lumc.sasc.biopet.extensions.pindel.Pindel
-import nl.lumc.sasc.biopet.extensions.delly.Delly
 import nl.lumc.sasc.biopet.pipelines.bammetrics.BamMetrics
 import nl.lumc.sasc.biopet.pipelines.mapping.Mapping
 import org.broadinstitute.gatk.queue.QScript