graph.py - first draft