Merge async, stream-based version