Source: https://www.csee.umbc.edu/~ypeng/msc/for elise long.pdf