main_fsm synthesizes!  still needs testing.