refactoring (2)