add DirectedEdge API