     
     public let entityName: String
     
-    public let identifier: (key: String, value: String)
+    public let context: NSManagedObjectContext
     
-    public let context: NSManagedObjectContext
+    public var identifier: (key: String, value: String) {
+        
+        get { return self.privateController.identifier }
+        
+        set { self.privateController.identifier = newValue }
+    }
     
     public var event = ManagedObjectObserverEvent<Decodable>()
     

    
    let entityName: String
    
    let identifier: (key: String, value: String)
    
    let context: NSManagedObjectContext
    
    weak var delegate: PrivateManagedObjectObserverDelegate?
    

    public init(entityName: String, identifier: (key: String, value: String), context: NSManagedObjectContext) {
        
        self.entityName = entityName
        self.context = context
        
        self.privateController = PrivateEntityController(entityName: entityName, identifier: identifier, context: context)
