Don't expose MonadState, hide internals