added basic graph functionality, next step: generate edges & concrete subclasses