change tsreader to pure readable & handle partial data downloads