Like NSOperation and implemented by StateMachine