adding the dfs algo