basic DFS seems to be working