type hierarchy
codegen script update