We need to implement the `StateMachine` Class that provides a formal state machine instead of the stateless `TransitionMachine`