also generate enums