https://courses.grainger.illinois.edu/cs522/sp2016/simpson-etal-rel-poly-cat.pdf