diff --git a/lib/MetaTemplate/Template.php b/lib/MetaTemplate/Template.php
index <HASH>..<HASH> 100644
--- a/lib/MetaTemplate/Template.php
+++ b/lib/MetaTemplate/Template.php
@@ -32,13 +32,13 @@ class Template
     /**
      * Creates a engine instance for the given template path
      *
-     * @param  string $template
+     * @param  string $source
      * @param  array  $options  Engine Options to pass to the constructor
      * @return \MetaTemplate\Template\Base
      */
-    static function create($template, $options = array())
+    static function create($source, $options = array(), $callback = null)
     {
-        return static::getEngines()->create($template, $options);
+        return static::getEngines()->create($source, $options, $callback);
     }
 
     /**
diff --git a/lib/MetaTemplate/Util/EngineRegistry.php b/lib/MetaTemplate/Util/EngineRegistry.php
index <HASH>..<HASH> 100644
--- a/lib/MetaTemplate/Util/EngineRegistry.php
+++ b/lib/MetaTemplate/Util/EngineRegistry.php
@@ -42,12 +42,12 @@ class EngineRegistry
         return $this;
     }
 
-    function create($path, $options = array())
+    function create($source, $options = null, $callback = null)
     {
-        $extension = pathinfo($path, PATHINFO_EXTENSION);
+        $extension = pathinfo($source, PATHINFO_EXTENSION);
         $class = $this->get($extension);
 
-        return new $class($path, $options = array());
+        return new $class($source, $options, $callback);
     }
 
     function get($extension)
Adapted factory methods to new template constructor.