feat return the stateMachine