Yet another state machine gem