hide some implementation details in MicroStateMachines