thinking about finate state machines; taking a detour to look at testing frameworks first