         return Array([sourceWatchers, templateWatchers].joined())
     }
 
-    private func topDirectories(from paths: [Path]) -> [Path] {
+    private func topPaths(from paths: [Path]) -> [Path] {
         var top = [(Path, [Path])]()
         paths.forEach { path in
             // See if its already contained by the topDirectories


        Log.info("Starting watching sources.")

        let sourceWatchers = topDirectories(from: watchPaths.allPaths).map({ watchPath in
            return FolderWatcher.Local(path: watchPath.string) { events in
                let eventPaths: [Path] = events
                    .filter { $0.flags.contains(.isFile) }


        Log.info("Starting watching templates.")

        let templateWatchers = topPaths(from: templatesPaths.allPaths).map({ templatesPath in
            return FolderWatcher.Local(path: templatesPath.string) { events in
                let events = events
                    .filter { $0.flags.contains(.isFile) && Path($0.path).isTemplateFile }
