Working towards function unification
First pitch on portin everything to State monad from IO
Finished porting to state monad
Cleanup and start of writing specs
Cleanup and more specs
Add more tests