     ///
     public func then<Progress2, Value2>(thenClosure: (Value?, ErrorInfo?) -> Task<Progress2, Value2, Error>) -> Task<Progress2, Value2, Error>
     {
-        let newTask = Task<Progress2, Value2, Error> { [weak self] machine, progress, fulfill, _reject, configure in
+        return Task<Progress2, Value2, Error> { [weak self] machine, progress, fulfill, _reject, configure in
             
             let bind = { [weak machine] (value: Value?, errorInfo: ErrorInfo?) -> Void in
                 let innerTask = thenClosure(value, errorInfo)

        
        if initClosure == nil { return self }
        
        let newTask = Task { [weak self] machine, progress, fulfill, _reject, configure in
        
            var chainedTasks = [self!]
            var nextTask: Task = self!

                }
            }
            
        }.name("\(self.name)-try(\(maxTryCount))")
    }
    
    ///
