   /// **Mechanica**
   ///
   /// Asynchronously performs changes and then saves them or rollbacks if any error occurs.
-  public func performChanges(changes: @escaping () -> (), onChangesPerformed: ( (Bool) -> () )? = nil) {
-    let queue = OperationQueue.current
+  public func performChanges(changes: @escaping () -> ()) {
     perform {
       changes()
-      let result = self.saveOrRollback()
-      queue?.addOperation({onChangesPerformed?(result)})
+      self.saveOrRollback()
     }
   }
 

  ///
  /// Synchronously performs changes and then saves them or rollbacks if any error occurs.
  /// - returns: true if the save succeeds, otherwise false.
  public func performChangesAndWait(changes: @escaping () -> ()) -> Bool {
    var result = false
    performAndWait {

  ///   - key: Object key
  ///   - store: NSPersistentStore where is stored the metadata.
  public func setMetaDataObject(_ object: AnyObject?, with key: String, for store: NSPersistentStore){
    performChanges {
      guard let psc = self.persistentStoreCoordinator else { fatalError("Persistent Store Coordinator missing.") }
      var md = psc.metadata(for: store)
      md[key] = object
      psc.setMetadata(md, for: store)
    }
  }

  /// **Mechanica**
