Streaming version of Part 2