Added comments.
Refactored the game module to make use of the game state monad.