generate enums work with special enum