It seems strange that we have to buffer this manually, no built-in stream util to do this?