   ///   - notificationCenter: The `NotificationCenter` listening the the `NSManagedObjectContext` notifications.
   ///   - The operation queue to which block should be added. If you pass nil, the block is run synchronously on the posting thread.
   ///   - changeHandler: The completion handler.
-  init(context: NSManagedObjectContext,
-       event: NSManagedObjectContext.ObservableEvents,
-       observeSubEntities: Bool = false,
-       queue: OperationQueue? = nil,
-       changeHandler: @escaping (AnyManagedObjectContextChange<T>, NSManagedObjectContext.ObservableEvents) -> Void) {
+  public init(context: NSManagedObjectContext,
+              event: NSManagedObjectContext.ObservableEvents,
+              observeSubEntities: Bool = false,
+              queue: OperationQueue? = nil,
+              changeHandler: @escaping (AnyManagedObjectContextChange<T>, NSManagedObjectContext.ObservableEvents) -> Void) {
     self.managedObjectContext = context
     self.event = event
     self.observeSubEntities = observeSubEntities

        return value.filter { $0.entity == observedEntity } as? Set<T> ?? []
      }
    }

    let deleted = process(changes.deletedObjects)
    let inserted = process(changes.insertedObjects)
    let updated = process(changes.updatedObjects)

    }
    return entity
  }()
  
  // MARK: - Private properties
  
  private let managedObjectContext: NSManagedObjectContext
  private let queue: OperationQueue?
  private let handler: (AnyManagedObjectContextChange<T>, NSManagedObjectContext.ObservableEvents) -> Void
