change MonitorState and document its behavior