Added a graph implementation, need to add directed graphs