     public func performWithInput(input: T.Input, completionHandler: (T.Output -> Void)? = nil) {
         self._performWithInput(input, completionHandler: completionHandler)
     }
+    
+    public func performWithInput(input: T.Input, completionHandler: T.Output -> Void) {
+        self._performWithInput(input, completionHandler: completionHandler)
+    }
 }
 
 /**

 *  A chain is a queue of operations that execute serially on the application's main queue.
 *  To create a chain, initialize an instance of `FlowOperationChain` with a root operation.
 */
public protocol FlowOperationChainAPI: class {
    /// The type of the chain's root operation
    typealias RootOperationType: FlowOperation
    /// The type of the operation currently located at the end of the chain

    }
    
    public func performWithInput(input: R.Input, completionHandler: (C.Output -> Void)? = nil) {
        self._performWithInput(input, completionHandler: completionHandler)
    }
    
    public func performWithInput(input: R.Input, completionHandler: C.Output -> Void) {
        self._performWithInput(input, completionHandler: completionHandler)
    }
}
