Streaming 2i ..... big function that should be compacted 'at some point'(tm)