         
         // existing/added files
         for file in files {
-            let url = URL(fileURLWithPath: path).appendingPathComponent(file)
-            guard !url.isDirectory else { return }
-            
             storage.updateDownloadedFlag(true, forAssetWithRelativeLocalURL: file)
             
             DispatchQueue.main.async {

        // removed files
        let removedFiles = existingVideoFiles.filter { !files.contains($0) }
        for file in removedFiles {
            let url = URL(fileURLWithPath: path).appendingPathComponent(file)
            guard !url.isDirectory else { return }
            
            storage.updateDownloadedFlag(false, forAssetWithRelativeLocalURL: file)
            
            DispatchQueue.main.async {

        setupSubdirectoryMonitors(on: mainDirURL)
        
        topFolderMonitor.startMonitoring()
        
        enumerateVideoFiles(videosPath)
    }
    
    private func setupSubdirectoryMonitors(on mainDirURL: URL) {
