Refactored into a completely streaming API