updating FSM