         }, executionContext: executionContext)
     }
     
+    // TODO: private
     func onFailure(callback: NSError -> (), executionContext: ExecutionContext? = nil) {
         self.onComplete({ (value, error) in
             if error {

        })!;
    }
    
    func error(error: NSError) {
        if !self.tryError(error) {

        }
    }
    
    func tryError(error: NSError) -> Bool {
        return (q.sync {
            if self.result.state != .Pending {

        }
    }
    
    // TODO: private
    func success(value: T?) {
        self.trySuccess(value)
    }
    
    // TODO: private
    func trySuccess(value: T?) -> Bool {
        return (q.sync {
            if self.result.state != .Pending {
