Source: https://www.bu.edu/csmet/files/2018/06/CS669_O2_SPRG-2-2018.pdf