A simple FSM implementation