fsm example