      */
     public init<O: DynamicObject>(_ keyPath: KeyPath<D, O>, isEqualTo value: Void?) {
         
-        self.init(NSPredicate(format: "\(keyPath._kvcKeyPathString!) == nil"))
+        self.init(keyPath._kvcKeyPathString!, isEqualTo: value)
     }
     
     /**

     */
    public init<O: DynamicObject, S: Sequence>(_ keyPath: KeyPath<D, O>, isMemberOf list: S) where S.Iterator.Element == O {
        
        self.init(NSPredicate(format: "\(keyPath._kvcKeyPathString!) IN %@", list.map({ $0.cs_id() }) as NSArray))
    }
    
    /**

     */
    public init<V: QueryableAttributeType>(_ keyPath: KeyPath<D, V>, isEqualTo value: Void?) {
        
        self.init(keyPath._kvcKeyPathString!, isEqualTo: value)
    }
    
    /**
