https://graphs.pythonprogramminghelp.com/how-to-without-hopscotch/