Refactoring produces