Separated Watching Logic from Watcher.
Fixed Tests.