Add another(propper) dfs implementation