     }
 
     public init(node: Node, in context: Context) throws {
+        
         id = try node.extract("id")
-
+        idKey = try First.query().idKey
+        
         let firstKey = "\(First.name)_\(idKey)"
         let secondKey = "\(Second.name)_\(idKey)"
 

        }
    }

    public var idKey: String {
        return Pivot.database?.driver.idKey
    }

    public var id: Node?
    public var leftId: Node?
    public var rightId: Node?

    public init(_ first: Entity, _ second: Entity) {
        if First.self == type(of: self).left {

    }

    public func makeNode(context: Context = EmptyNode) throws -> Node {
        
        return try Node(node: [
            "\(idKey)": id,
            "\(type(of: self).left.name)\(idKey)": leftId,
