introduced Monitor interface
introduced MonitorRunner