7 general refactoring