the callback is getting `rstream` as the first parameter, so why provided `rstream->data` as another parameter?