add `CodeGen` draft AST. This is likely to be refined later.