refactoring 1