New classes created to follow the refactoring chapter