added graph and dfs