start implementing a graph data structure