add depth first traversal