refactoring (3)