refactoring part 1