refactoring compiler