dynamic upper number limit