the graph data structure