more complicated event monitoring. Removes and adds paths to watcher where apporpriate.