Could generalize the Monitor class so that it can usefully be subclassed for functionality other than that exposed by the three existing subclasses. For example, there could be a method that retrieves the value to be sampled, and another that determines whether a notification is necessary. This would allow monitoring of attributes of arbitrary data types, monitoring with more than one threshold, etc. The Monitor class would provide the common framework of periodic sampling, remembering whether a notification has already been emitted, maintaining the list of monitored MBeans, etc.