auto refactoring