     private var subdirectories = Set<String>()
     private var source: dispatch_source_t!
     private let fm = NSFileManager.defaultManager()
+
+    public private(set) var parentWatcher: DirectoryWatcher?
+    public var rootWatcher: DirectoryWatcher {
+        var parentWatcher = self.parentWatcher
+        while parentWatcher?.parentWatcher != nil {
+            parentWatcher = parentWatcher?.parentWatcher
+        }
+        if parentWatcher == nil {
+            return self
+        }
+        return parentWatcher!
+    }
 
     public weak var delegate: DirectoryWatcherDelegate?
 

        guard monitoring else { return }

        performOnWatcherQueue {
            for (_, submonitor) in self.subdirectoriesWatcher {
                submonitor.stopMonitoring()
            }

                    self.subdirectories.insert($0)
                    let dw = DirectoryWatcher(watchPath: $0, autoWatchSubdirectory: true)
                    dw.delegate = self.delegate
                    dw.parentWatcher = self
                    dw.startMonitoring()
                    self.subdirectoriesWatcher[$0] = dw
                }
