     }()
     
     /// Managed object context to be used when inserting data, whose parent context is `mainMoc`.
-    private lazy var defaultTempMoc: NSManagedObjectContext = {
+    private var tempMoc: NSManagedObjectContext {
         let result = NSManagedObjectContext(concurrencyType: .privateQueueConcurrencyType)
+        result.automaticallyMergesChangesFromParent = true
+        result.mergePolicy = NSMergePolicy.mergeByPropertyObjectTrump
         result.parent = mainMoc
         return result
-    }()
+    }
     /// Managed object context to be used on main thread for fetching data, whose parent context is `persistentMoc`.
     private lazy var mainMoc: NSManagedObjectContext = {
         let result = NSManagedObjectContext(concurrencyType: .mainQueueConcurrencyType)

    }
    
    private func saveSummary(_ summary: MXRoomSummaryProtocol) {
        let moc = defaultTempMoc
        
        moc.perform { [weak self] in
            guard let self = self else { return }

    }
    
    private func deleteSummary(forRoomId roomId: String) {
        let moc = tempMoc
        
        moc.perform { [weak self] in
            guard let self = self else { return }
