 					preconditionFailure("current section name is supposed to exist, but not found.")
 				}
 
-				guard !sortOrderIsAffected(by: object, against: objectCache[cacheIndex].1) else {
+				guard !sortOrderIsAffected(by: object, comparingWithSnapshotAt: cacheIndex) else {
 					guard let objectIndex = sections[currentSectionIndex].storage.index(of: object.objectID,
 					                                                                    using: objectSortDescriptors,
 					                                                                    with: objectCache) else {
-																																								preconditionFailure("An object should be in section \(currentSectionIndex), but it cannot be found. (ID: \(object.objectID.URIRepresentation()))")
+						preconditionFailure("An object should be in section \(currentSectionIndex), but it cannot be found. (ID: \(object.objectID.URIRepresentation()))")
 					}
 
 					sortOrderAffectingIndexPaths.insert(objectIndex, intoSetAt: currentSectionIndex)

		return nil
	}

	private func sortOrderIsAffected(by object: E, against snapshot: [String: AnyObject]) -> Bool {
		for key in sortKeysInSections {
			if let index = snapshot.indexForKey(key) {
				if !object.valueForKeyPath(key)!.isEqual(snapshot[index].1) {

						guard let objectIndex = sections[previousSectionIndex].storage.index(of: object.objectID,
						                                                                     using: objectSortDescriptors,
						                                                                     with: objectCache) else {
							preconditionFailure("An object should be in section \(previousSectionIndex), but it cannot be found. (ID: \(object.objectID.URIRepresentation()))")
						}

						sectionChangedIndexPaths.insert(objectIndex, intoSetAt: previousSectionIndex)
