Finished introducing lenses and state monad transformer