http://erikdalton.com/articleCCPThesis.pdf