extended FSM