Separate StateMachine class.