sweet graph algorithm
ember guides pt.1