         try
           tpl = hogan.compile contents.toString()
           callback null, new KelvinTemplate tpl
+        catch error
+          callback error
+  
+  class KelvinPartialTemplate extends KelvinTemplate
+  
+  KelvinPartialTemplate.fromFile = (filename, base, callback) ->
+    fs.readFile path.join(base, filename), (error, contents) ->
+      if error then callback error
+      else
+        try
+          ext = path.extname(filename)
+          basename = path.basename(filename, ext)
+          tpl = hogan.compile contents.toString()
+          partials[basename] = tpl
+          callback null, new KelvinPartialTemplate tpl
         catch error
           callback error
 

        callback null, new KelvinJavaScriptTemplates filename, base, buffer.toString()

  wintersmith.registerTemplatePlugin '**/*.*mustache', KelvinTemplate
  wintersmith.registerContentPlugin 'css', '**/*.less', KelvinStylesheets
  wintersmith.registerContentPlugin 'js', '**/*.js', KelvinJavaScripts
  wintersmith.registerContentPlugin 'jst', '**/*.mustache', KelvinJavaScriptTemplates

  
  isProd = false
  kelvin = new Kelvin(isProd)
  partials = {}
  partialDir = 'partials'
  
  class KelvinTemplate extends wintersmith.TemplatePlugin

