added the standard state monad and state transformer