refactor - change Edges() and Vertices() to use channel based iteration