agilejava ch05 exercise refactoring