a lot of work adjusting the AST nodes and capabilities