have getDimensionalOptional use the non-throwing getDimensionPtr method to save exception catching
comment
go back to caching Dimensions for now, with the caveat listed in the comment