added data structures for graphs