diff --git a/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/igvtools/IGVTools.scala b/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/igvtools/IGVTools.scala
index b411e02dba9f13ec9cf8a1db5f48deb3c882f021..3effdeea1d09f953d9d1759c3d4bfb696dcdb493 100644
--- a/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/igvtools/IGVTools.scala
+++ b/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/igvtools/IGVTools.scala
@@ -14,16 +14,17 @@
  */
 package nl.lumc.sasc.biopet.extensions.igvtools
 
-import nl.lumc.sasc.biopet.core.{ Version, BiopetCommandLineFunction }
+import nl.lumc.sasc.biopet.core.{ BiopetJavaCommandLineFunction, Version }
 
 /**
  * General igvtools extension
  *
  * Created by wyleung on 5-1-15
  */
-abstract class IGVTools extends BiopetCommandLineFunction with Version {
-  executable = config("exe", default = "igvtools", namespace = "igvtools", freeVar = false)
-  def versionCommand = executable + " version"
+abstract class IGVTools extends BiopetJavaCommandLineFunction with Version {
+  jarFile = config("igvtools_jar", namespace = "igvtools")
+
+  def versionCommand = executable + s" -jar ${jarFile.getAbsolutePath} version"
   def versionRegex = """IGV Version:? ([\w\.]*) .*""".r
   override def versionExitcode = List(0)
 }
\ No newline at end of file
diff --git a/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/igvtools/IGVToolsCount.scala b/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/igvtools/IGVToolsCount.scala
index bf466099d3b652320cf8fae3355158fbb2b17354..c7c09c28aee2c00e6aa033e8b8a35dc7b0f24935 100644
--- a/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/igvtools/IGVToolsCount.scala
+++ b/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/igvtools/IGVToolsCount.scala
@@ -76,25 +76,23 @@ class IGVToolsCount(val root: Configurable) extends IGVTools {
   }
 
   /** Returns command to execute */
-  def cmdLine = {
-    required(executable) +
-      required("count") +
-      optional("--maxZoom", maxZoom) +
-      optional("--windowSize", windowSize) +
-      optional("--extFactor", extFactor) +
-      optional("--preExtFactor", preExtFactor) +
-      optional("--postExtFactor", postExtFactor) +
-      optional("--windowFunctions", windowFunctions) +
-      optional("--strands", strands) +
-      conditional(bases, "--bases") +
-      optional("--query", query) +
-      optional("--minMapQuality", minMapQuality) +
-      conditional(includeDuplicates, "--includeDuplicates") +
-      conditional(pairs, "--pairs") +
-      required(input) +
-      required(outputArg) +
-      required(genomeChromSizes)
-  }
+  override def cmdLine = super.cmdLine +
+    required("count") +
+    optional("--maxZoom", maxZoom) +
+    optional("--windowSize", windowSize) +
+    optional("--extFactor", extFactor) +
+    optional("--preExtFactor", preExtFactor) +
+    optional("--postExtFactor", postExtFactor) +
+    optional("--windowFunctions", windowFunctions) +
+    optional("--strands", strands) +
+    conditional(bases, "--bases") +
+    optional("--query", query) +
+    optional("--minMapQuality", minMapQuality) +
+    conditional(includeDuplicates, "--includeDuplicates") +
+    conditional(pairs, "--pairs") +
+    required(input) +
+    required(outputArg) +
+    required(genomeChromSizes)
 
   /** This part should never fail, these values are set within this wrapper */
   private def outputArg: String = {