Source: https://are.berkeley.edu/~sberto/Spring2010opec.pdf