added OrdinalEnumTemplate class