using key-value arguments instead of array and totals/bits, more error specs, raise the major version