http://www.se.rit.edu/~swen-262/casestudies/RefactoringCaseStudy.htm