refactoring everywhere