adding 'when' parameter to MonitorField