introduced MultiValueOrdinalArray to save on memory consumption