             }
         }
     }
+    
+    private func update(execute: @escaping () -> Void) {
+        guard !isUpdating else { return }
+        
+        DispatchQueue.main.async {
+            self.isUpdating = true
+            execute()
+            self.isUpdating = false
+        }
+    }
 }

        return MainViewCellModel(title: visit.title, detail: organization?.title)
    }
    
        //
    func didSelectCell(at indexPath: IndexPath) {
    }
    
        //
    func didDeselectCell(at indexPath: IndexPath) {
    }
    
    func didSelectPin(withID identifier: Int) {
        //
    }
    
    func didDeselectPin(withID identifier: Int) {
        //
    }
    
    // MARK: - Private

    private let dataManager = DataManager.shared
    private var organizationModels = OrganizationModelPairs()
    private var visitModels = [VisitModel]()
    private var selectedCells: Set<IndexPath>?
    private var selectedPin: Int?
    private var isUpdating = false
    
    var numberOfRows: Int {
        return visitModels.count
