Source: https://tspace.library.utoronto.ca/bitstream/1807/99960/3/Rakofsky_Isaac_201803_MSc_thesis.pdf