playing some more with state machines and golang scanner