allow limit to be zero