         
     }
     
-    func createController() -> VCType? {
+    /**
+     Creates the view controller specified by presentation mode. Should only be used from custom row implementation.
+     
+     - returns: the created view controller or nil depending on the PresentationMode type.
+     */
+    public func createController() -> VCType? {
         switch self {
             case .Show(let controllerProvider, let completionCallback):
                 let controller = controllerProvider.createController()

        if let title = selectorTitle {
            rowVC.title = title
        }
        if let callback = self.presentationMode?.completionHandler{
            rowVC.completionCallback = callback
        }
        onPresentCallback?(cell.formViewController()!, rowVC)

        }
    }
    
    
    /**
     Present the view controller provided by PresentationMode. Should only be used from custom row implementation.
     
     - parameter viewController:           viewController to present if it makes sense (normally provided by createController method)
     - parameter row:                      associated row
     - parameter presentingViewController: form view controller
     */
    public func presentViewController(viewController: VCType!, row: BaseRow, presentingViewController:FormViewController){
        switch self {
            case .Show(_, _):
                presentingViewController.showViewController(viewController, sender: row)
