started implementing the OrderedStateMachine wrapper