modify AST