add DirectedDFS