1) refactoring