added basic graph implementation