Safe monadic version works. Needs cleanup, backup commit
Fixed a bit of brokenness. Pretty much ready to merge back to develop, though the design decision of which monad should be exposed by default still stands
Cleaned up imports, made Glisha a nice and clean instance of MonadState. Everything seems to work
Added simple key control that was added before actually