!A added fsm