Adding FSM to package. Should separate it into its own project soon.