   ///
   /// Returns the entity with the specified name from the managed object model associated with the specified managed object context’s persistent store coordinator.
   public final func entity(forEntityName name: String) -> NSEntityDescription {
-    guard let psc = persistentStoreCoordinator else { fatalError("Persistent Store Coordinator missing.") }
-    guard let entity = psc.managedObjectModel.entitiesByName[name] else { fatalError("Entity \(name) not found.") }
+    guard let persistentStoreCoordinator = persistentStoreCoordinator else { fatalError("Persistent Store Coordinator missing.") }
+    guard let entity = persistentStoreCoordinator.managedObjectModel.entitiesByName[name] else { fatalError("Entity \(name) not found.") }
     //guard let entity = NSEntityDescription.entity(forEntityName: name, in: self) else { fatalError("Entity \(name) not found.") }
     return entity
   }
+
+}
+
+// MARK: - Child Context
+
+extension NSManagedObjectContext {
 
   /// **Mechanica**
   ///

  ///
  /// Returns a dictionary that contains the metadata currently stored or to-be-stored in a given persistent store.
  public final func metaData(for store: NSPersistentStore) -> [String: Any] {
    guard let psc = persistentStoreCoordinator else { fatalError("Must have Persistent Store Coordinator.") }
    return psc.metadata(for: store)
  }

  /// **Mechanica**
  ///
  /// Adds an `object` to the store's metadata and saves it asynchronously.
  ///
  /// - Parameters:
  ///   - object: Object to be added to the medata dictionary.
  ///   - key: Object key
  ///   - store: NSPersistentStore where is stored the metadata.
  public final func setMetaDataObject(_ object: AnyObject?, with key: String, for store: NSPersistentStore) {
    performSave(after: {
      guard let psc = self.persistentStoreCoordinator else { fatalError("Persistent Store Coordinator missing.") }
      var metaData = psc.metadata(for: store)
      metaData[key] = object
      psc.setMetadata(metaData, for: store)

    })
  }


  ///
  /// The persistent stores associated with the receiver.
  public final var persistentStores: [NSPersistentStore] {
    guard let persistentStoreCoordinator = persistentStoreCoordinator else { fatalError("Persistent Store Coordinator missing.") }
    let stores = persistentStoreCoordinator.persistentStores
    return stores
  }

