code gen so far