I agree. How should we determine, though, when we need to set the remaining size to `0`? I'd prefer to use integers to represent these numbers so that this can be as easy as `Math.max(0, remaining)` instead of [trying to detect when we'll overflow](http://stackoverflow.com/questions/199333/best-way-to-detect-integer-overflow-in-c-c). What do you think?