 
       return producer
     }
-  }
-
-  extension Retainer where Self: NSObject {
-    func setValue<T>(
+
+    fileprivate func setValue<T>(
       _ newValue: T,
       forKeyPath keyPath: String,
       allowSettingSameValue: Bool,

      }
    }

    func getValue<T>(
      forKeyPath keyPath: String,
      changes: [NSKeyValueChangeKey: Any],
      customGetter: CustomGetter<T>?

        }
    }

    fileprivate func getValue<T>(
      forKeyPath keyPath: String,
      changes: [NSKeyValueChangeKey: Any],
      customGetter: CustomGetter<T?>?
