not yet tested (no compiler available) FSM