AST redesign