Added State Monad Support