diff --git a/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/config/Configurable.scala b/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/config/Configurable.scala
index d1c1d5640d494ed470f9ede184388c19fc7a6b60..ecb93d81e5842b39bc7722267100619545e8e028 100644
--- a/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/config/Configurable.scala
+++ b/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/config/Configurable.scala
@@ -4,10 +4,11 @@ import java.io.File
 import org.broadinstitute.sting.queue.util.Logging
 
 trait Configurable extends Logging {
-  val globalConfig: Config
-  val configPath: List[String]
-  protected var configName = getClass.getSimpleName.toLowerCase
-  protected var configFullPath = configName :: configPath
+  val root: Configurable
+  val globalConfig: Config = if (root != null) root.globalConfig else new Config()
+  val configPath: List[String] = if (root != null) root.configFullPath else List()
+  protected val configName = getClass.getSimpleName.toLowerCase
+  protected val configFullPath = configName :: configPath
   
   def config(key:String) = globalConfig(configName, configPath, key)
   def config(key:String, default:Any) = globalConfig(configName, configPath, key, default)