Added watcher component and tests