stateMachine