refactoring 2