add more work on fsm_constructors.py