Add dfs function XD