added MonadPlus and MonadState instances to State monad