add DFS algorithm wip