Sources and docs for a simple refactoring and OO design exercise