Make watcher api better for public usage.