     private let configuration: DKImageGroupDataManagerConfiguration
     
     public init(configuration: DKImageGroupDataManagerConfiguration) {
-        self.configuration = configuration.copy() as! DKImageGroupDataManagerConfiguration
-        
+        self.configuration = configuration.copy() as! DKImageGroupDataManagerConfiguration 
+
         super.init()
     }
     

        for group in groups {
			if let changeDetails = changeInstance.changeDetails(for: group.originalCollection) {
				if changeDetails.objectWasDeleted {
					self.groups![group.groupId] = nil
                    self.notify(with: #selector(DKImageGroupDataManagerObserver.groupDidRemove(groupId:)), object: group.groupId as AnyObject?)
					continue
				}
				
				if let objectAfterChanges = changeDetails.objectAfterChanges {
					self.updateGroup(self.groups![group.groupId]!, collection: objectAfterChanges)
                    self.notify(with: #selector(DKImageGroupDataManagerObserver.groupDidUpdate(groupId:)), object: group.groupId as AnyObject?)
				}
			}
			

        let assetGroupTypes = self.configuration.assetGroupTypes
        var insertedGroupIds: [String] = []
        
        self.fetchGroups(assetGroupTypes: assetGroupTypes) { [weak self] collection in
            if let groups = self?.groups,
                groups[collection.localIdentifier] == nil,
                let assetGroup = self?.makeDKAssetGroup(with: collection)
            {
                self?.groups?[assetGroup.groupId] = assetGroup
                self?.groupIds?.append(assetGroup.groupId)
                
                insertedGroupIds.append(assetGroup.groupId)
            }
        }
        
        if (insertedGroupIds.count > 0) {
            self.notify(with: #selector(DKImageGroupDataManagerObserver.groupsDidInsert(groupIds:)), object: insertedGroupIds as AnyObject)
