composed fsm