Phase 2: merge (but without inplace call, also mostly go still)