mutating when range gets small to avoid too many failures from nicer things