refactoring 4