Add rec_dfs function