refactoring3