initial commit: graph and dfs