Introduced a factory for codegen data containers

implementation completed