The OnlyVertices data structure follows a legacy design where graphs are encoded in two classes: Graph and Vertex. A Graph object defines a list of Vertex objects. Each Vertex object encapsulates two lists (or really containers): an adjacency list of other vertices and a "parallel" Weights list that maintains weight information for the corresponding adjacent vertex (i.e., the length of the adjacency list and the weights list is always the same). The advantage of this data structure is its simplicity; its disadvantage is when edges must be explicitly manipulated.