Added a depth first search