yeah. One catch with making it general is the policy on over-reading. This class will read more data than it needs to; in some situations that could be bad. (Because there's no mechanism to push back bytes you didn't need.)