https://medium.com/@monocosmo77/applications-of-directed-acyclic-graphs-part2-computer-science-76949f217e97