introduced MonitorFactory