Exercise from ATDD adapted by Kyle Griffin from Fowler Refactoring book