rework fsm