finished exercise 2.3
included Graph.py because I forgot a second ago