I'm curious why you made this change. It does appear to simplify implementations *_very slightly_* (since they don't have to actually call `iterator()`, but since the supplied iterator can only be used once it means that it will no longer work if there are multiple monitors.