This will 1) greatly simplify the gray-streams code, and 2) add an important feature directly in the lowest level API.