refactoring4