refactoring, part 3