implement WatchService (still some bugs)