used CS enums instead of CS composite type