refactor ReadStream