Making make-fsm more readable and separating into its own package