Refactored AST.