always try to consume all of the data in retrieve