     
     internal typealias Machine = StateMachine<TaskState, TaskEvent>
     
-    internal let machine: Machine
+    internal var machine: Machine!
 
     public internal(set) var progress: Progress?
     public internal(set) var value: Value?

    }
    
    internal init(_closure: _InitClosure)
    {
        let configuration = Configuration()
        

        })
    }
    
    public init(closure: InitClosure)
    {
        setup { (progress, fulfill, _reject: ErrorInfo -> Void, configure) in
            // NOTE: don't expose rejectHandler with ErrorInfo (isCancelled) for public init
            closure(progress: progress, fulfill: fulfill, reject: { (error: Error?) in _reject(ErrorInfo(error: error, isCancelled: false)) }, configure: configure)
            return
        }
    }
    
    public convenience init(value: Value)
