             case .insert:
                 for rowID in diff.array {
                     // find index of new row
-                    let findBlock = { (inDataSourceItem: T) -> Bool in
-                        return rowID == inDataSourceItem.identifier
-                    }
-
-                    let rowIDIndex = rowsToUpdate.index(where: findBlock)
+                    let rowIDIndex = rowsToUpdate.index(where: { rowID == $0.identifier })
                     if let actualIndex = rowIDIndex {
                         let newRow = rowsToUpdate[actualIndex]
                         newRows.insert(newRow, at: rowIndex)

        }

        let existingRows: [T] = self.rowsBySectionID[inSectionID] ?? []

        var newRows: [T] = existingRows

        let newIdentifiers = rowsToUpdate.map({ (inDataSourceItem) -> String in
            return inDataSourceItem.identifier
        })
        let existingIdentifiers = existingRows.map({ (inDataSourceItem) -> String in
            return inDataSourceItem.identifier
        })

        let diffs = diffBetweenArrays(arrayA: existingIdentifiers, arrayB: newIdentifiers)



    func update(rows rowsToUpdate: [T], section inSectionID: String, animated inAnimated: Bool) {
        guard let sectionIndex = self.sectionIndex(forSectionID: inSectionID) else {
            self.warn(message: "sectionID does not exists. Severity: non lethal but the update just failed and the data source remains unaltered.")
            return
        }

        if rowsToUpdate.containsDuplicates() {
            self.fail(message: "Supplied rows contain duplicates. This will confuse FURRDataSource later on and we can't have that. Severity: lethal, sorry.")
            return
        }

