             
             self.collectionView.deleteItems(at: indexPaths)
             self.configFiles = self.configFiles.filter { !($0.section >= section && $0.typeCell == .cell) }
-            self.insertRows(configFiles: configFiles, maxSectionInsertedOpt: sectionToDeleteFrom, completion: completion)
-            
-        }) { completed in
-            //completion?()
-        }
+            self.insertCells(configFiles: configFiles, maxSectionInsertedOpt: sectionToDeleteFrom, completion: completion)
+            
+        }) { _ in }
     }
 
-    public func insertRows(configFiles partialConfigFiles: [SnazzyCollectionCellConfigurator], maxSectionInsertedOpt: Int? = nil, completion: (()->())? = nil) {
+    /**
+     This method will insert all the cells specified at `configFiles`.
+     The configFiles don't need to be sorted by sections but the order of the array is gonna be the order of the cells for every section.
+     For example if you insert these configFiles for sections:
+     [ConfigFile 1: Section 1]
+     [ConfigFile 2: Section 2]
+     [ConfigFile 3: Section 2]
+     [ConfigFile 4: Section 1]
+     [ConfigFile 5: Section 3]
+     [ConfigFile 6: Section 1]
+     Then the order of the cells are going to be:
+     ConfigFile 1
+     ConfigFile 4
+     ConfigFile 6
+     ConfigFile 2
+     ConfigFile 3
+     ConfigFile 5
+     
+     - parameter configFiles: The array of configFiles that are going to be inserted.
+     - parameter maxSectionInsertedOpt: *Don't use this parameter is only for internal usage*.
+     - parameter completion: Callback that will be called when the insertion has been applied.
+     */
+    public func insertCells(configFiles partialConfigFiles: [SnazzyCollectionCellConfigurator], maxSectionInsertedOpt: Int? = nil, completion: (()->())? = nil) {
         let configFiles = getConfigFilesWithoutDuplication(configFiles: partialConfigFiles)
         
         let sections = Set(configFiles.map { $0.section }).sorted { $0.0 < $0.1 }

            
            self.collectionView.deleteItems(at: indexPaths)
            self.configFiles = self.configFiles.filter { !($0.section == section && $0.typeCell == .cell) }
            self.insertRows(configFiles: configFiles, maxSectionInsertedOpt: maxSectionInsertedOpt)
            
        }) { completed in
            completion?()
        }
    }
    
    public func deleteSections(greaterOrEqualTo section: Int, andInsert configFiles: [SnazzyCollectionCellConfigurator], completion: (()->())? = nil) {
        let configFilesToDelete = self.configFiles.filter { $0.section >= section && $0.typeCell == .cell }
        

        }
    }
    
    
    public func insertCellAtLocation(locationPosition: SnazzyLocationPosition, filter: @escaping (SnazzyCollectionCellConfigurator)->Bool, configFile partialConfigFile: SnazzyCollectionCellConfigurator, completion: (()->())? = nil) {
        
        guard let configFile = getConfigFileWithoutDuplication(configFile: partialConfigFile) else { completion?(); return }
        guard let index = self.configFiles.index(where: filter) else { completion?(); return }
