diff --git a/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/clever/CleverFixVCF.scala b/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/clever/CleverFixVCF.scala
index b0e49100dff4d021d1b31eb5965f3209080e377c..08dc8341138f627fe5898cce18d662a292036ed9 100644
--- a/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/clever/CleverFixVCF.scala
+++ b/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/clever/CleverFixVCF.scala
@@ -46,20 +46,31 @@ object CleverFixVCF extends ToolCommand {
     } text "Output path is missing"
   }
 
-  /**
-   * @param args the command line arguments
-   */
-  def main(args: Array[String]): Unit = {
-    val argsParser = new OptParser
-    val commandArgs: Args = argsParser.parse(args, Args()) getOrElse sys.exit(1)
-
-    val input: File = commandArgs.inputVCF
-    val output: File = commandArgs.outputVCF
-
-    val vcfColHeader = "#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\tFORMAT\tdefault"
-    val vcfColReplacementHeader = s"#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\tFORMAT\t${commandArgs.sampleLabel}"
+  def replaceHeaderLine(inHeaderLine: String, toCheckFor: String, replacement: String, extraHeader: String): String = {
+    (inHeaderLine == toCheckFor) match {
+      case true => {
+        extraHeader + "\n" + replacement + "\n"
+      }
+      case _ => {
+        // We have to deal with matching records
+        // these don't start with #
+
+        inHeaderLine.startsWith("#") match {
+          case true =>
+            inHeaderLine + "\n"
+          case _ => {
+            // this should be a record
+            // Ensure the REF field is at least an N
+            val cols = inHeaderLine.split("\t")
+            cols(3) = "N"
+            cols.mkString("\t") + "\n"
+          }
+        }
+      }
+    }
+  }
 
-    val extraHeader = """##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data">
+  val extraHeader = """##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data">
 ##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
 ##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency">
 ##INFO=<ID=IMPRECISE,Number=0,Type=Flag,Description="Imprecise structural variation">
@@ -99,32 +110,24 @@ object CleverFixVCF extends ToolCommand {
 ##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
 ##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">"""
 
+  val vcfColHeader = "#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\tFORMAT\tdefault"
+
+  val vcfColReplacementHeader = s"#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\tFORMAT\t"
+  /**
+   * @param args the command line arguments
+   */
+  def main(args: Array[String]): Unit = {
+    val argsParser = new OptParser
+    val commandArgs: Args = argsParser.parse(args, Args()) getOrElse sys.exit(1)
+
+    val input: File = commandArgs.inputVCF
+    val output: File = commandArgs.outputVCF
+
     val inputVCF = Source.fromFile(input)
     val writer = new PrintWriter(output)
-    for (line <- inputVCF.getLines()) {
-      (line == vcfColHeader) match {
-        case true => {
-          writer.write(extraHeader + "\n")
-          writer.write(vcfColReplacementHeader + "\n")
-        }
-        case _ => {
-          // We have to deal with matching records
-          // these don't start with #
-
-          line.startsWith("#") match {
-            case true =>
-              writer.write(line + "\n")
-            case _ => {
-              // this should be a record
-              // Ensure the REF field is at least an N
-              val cols = line.split("\t")
-              cols(3) = "N"
-              writer.write(cols.mkString("\t") + "\n")
-            }
-          }
-        }
-      }
-    }
+      inputVCF.getLines().foreach(x =>
+        writer.write(replaceHeaderLine(x, vcfColHeader, vcfColReplacementHeader + commandArgs.sampleLabel, extraHeader))
+      )
     writer.close()
     inputVCF.close()
   }
diff --git a/biopet-extensions/src/test/scala/nl/lumc/sasc/biopet/extensions/clever/CleverFixVCFTest.scala b/biopet-extensions/src/test/scala/nl/lumc/sasc/biopet/extensions/clever/CleverFixVCFTest.scala
new file mode 100644
index 0000000000000000000000000000000000000000..dde695505838a65944da3a98eaf423f4e9f90f57
--- /dev/null
+++ b/biopet-extensions/src/test/scala/nl/lumc/sasc/biopet/extensions/clever/CleverFixVCFTest.scala
@@ -0,0 +1,35 @@
+package nl.lumc.sasc.biopet.extensions.clever
+
+import org.scalatest.Matchers
+import org.scalatest.testng.TestNGSuite
+import org.testng.annotations.Test
+
+/**
+  * Created by wyleung on 13-5-16.
+  */
+class CleverFixVCFTest extends TestNGSuite with Matchers {
+
+  @Test
+  def replacementSucces = {
+    CleverFixVCF.replaceHeaderLine(
+      CleverFixVCF.vcfColHeader,
+      CleverFixVCF.vcfColHeader,
+      CleverFixVCF.vcfColReplacementHeader + "testsample",
+      CleverFixVCF.extraHeader
+    ) should equal(CleverFixVCF.extraHeader + "\n" + CleverFixVCF.vcfColReplacementHeader + "testsample"+ "\n")
+  }
+
+
+  @Test
+  def replacementOther = {
+    val vcfRecord = "chrM\t312\tL743020\t.\t<DEL>\t.\tPASS\tBPWINDOW=313,16189;CILEN=15866,15888;IMPRECISE;SVLEN=-15877;SVTYPE=DEL\tGT:DP\t1/.:103"
+    val vcfRecordExpected = "chrM\t312\tL743020\tN\t<DEL>\t.\tPASS\tBPWINDOW=313,16189;CILEN=15866,15888;IMPRECISE;SVLEN=-15877;SVTYPE=DEL\tGT:DP\t1/.:103"
+    CleverFixVCF.replaceHeaderLine(
+      vcfRecord,
+      CleverFixVCF.vcfColHeader,
+      CleverFixVCF.vcfColReplacementHeader + "testsample",
+      CleverFixVCF.extraHeader
+    ) should equal(vcfRecordExpected+ "\n")
+  }
+
+}