simplified new/read/decode, added axisRange optimization