refactoring, AST