(function() {
  'use strict';

  var keylime = require('keylime'),
      _ = require('lodash'),
      mach = require('mach'),

      Controller = keylime('Controller'),
      METHOD_NAMES = ['index', 'new', 'create', 'show', 'destroy', 'edit', 'update', 'replace'];

  Controller
    .method('_getMethods', function getMethods() {
      var handlers = _.filter(_.functions(this), function(func) {
            return _.contains(METHOD_NAMES, func);
          });
      return _.reduce(handlers, function(acc, func) {
        acc[func] = this[func].bind(this);
        return acc;
      }, {}, this);
    });

  // add response helper methods
  _.each(['send', 'text', 'html', 'json', 'redirect', 'back'], function mapResponseHelpers(func) {
    Controller.method(func, function() {
      return mach[func].apply(this, arguments);
    });
  });

  module.exports = Controller;
}());

@@ -118,16 +118,53 @@
 'mach'),
+%0A      Promise = require('bluebird'),
 %0A%0A      
@@ -625,24 +625,972 @@
  %7B%7D, this);%0A
+    %7D)%0A%0A    /**%0A     * Render a view from inside a controller. Can also supply a status%0A     * and headers, like other response helpers. Defaults to HTML.%0A     *%0A     *    HomeController.prototype.index = function() %7B%0A     *      return this.render('home/index', %7Bmessage: 'Template data!'%7D);%0A     *    %7D;%0A     */%0A    .method('render', function render(view, data, status, headers) %7B%0A      if (!_.isObject(this._view_manager)) %7B%0A        return Promise.reject('Cannot render templates without a view manager!');%0A      %7D%0A%0A      if (!_.isFunction(this._view_manager.rendererForSignature(view))) %7B%0A        return Promise.reject('Template not found '+view);%0A      %7D%0A%0A      headers = headers %7C%7C %7B%7D;%0A      headers%5B'Content-Type'%5D = headers%5B'Content-Type'%5D %7C%7C 'text/html';%0A%0A      return this._view_manager.rendererForSignature(view)(data %7C%7C %7B%7D)%0A      .bind(this)%0A      .then(function(content) %7B%0A        return this.send(content, status, headers);%0A      %7D);%0A
     %7D);%0A%0A  /
@@ -1679,16 +1679,24 @@
 , 'back'
+, 'send'
 %5D, funct

add Controller#render