Write new state machine using new module

I think the big question we need to answer next is whether we're happy with the actions being so tiny and just delegating to the command_interface.

We might want to modify the design of the StateMachine(Factory) to allow us to call methods directly on the command interface as actions.