`i` is an unfortunate choice of member name because a lot of loop indices and locals tend to use it as well. I'd use something like `watermark` or `limit` or `used` etc.