Change Watcher to use Rx