Implement fsm support