         return self
     }
     
-    var internalState: State = .Initialized
-    
     var state: State {
         get {
             return Dispatch.sync(queue) { return self.internalState }

            willChangeValueForKey("state")
            
            Dispatch.sync(queue) {
                assert(self.internalState.canTransitionToState(newState), "Invalid state transformation")
                self.internalState = newState
            }
            

        }
    }
    
    /// Completion block that will be executed when the task finishes execution
    @available(*, deprecated, message = "use onResult completion instead")
    public override var completionBlock: (() -> Void)? {
        get {
            return nil
        }
        set {
            assert(false, "Use onComplete method to define the behaviour")
        }
    }
    
    var onCompleteBlock: ((T) -> Void)? {
        get {
