made shape a property, since it can always be computed from the dims attribute
no need to specify shape anymore