added on_demand watchers