https://courses.grainger.illinois.edu/cs498ac3/fa2020/Files/gos_journal.pdf