Rework how we're doing code generation