fsm should return its new state