refactoring -2