reworking angular code generation architecture