Source: http://njms.rutgers.edu/gsbs/olc/mci/prot/2009/Lec11Raveche.pdf