proper StateMachine type use