@property
def xy(self):
    if (len(self.edges) == 0):
        return XY(0, 0)
    else:
        x = min((e.left_node.xy.x for e in self.edges))
        y = (min((e.order for e in self.edges)) + 1)
        return XY(x, y)
@property
def xy(self):
    if (len(self.edges) == 0):
        return XY(0, 0)
    else:
        x = min((e.left_node.xy.x for e in self.edges))
        y = (min((e.order for e in self.edges)) + 1)
        return XY(x, y)