[REF] clean up merge array.
This code has been doing my head in because it is just like 'construct complex array & then another
complex array & iterate them together in nasty ways.
However, after another round of misery I'm pretty sure that this cleanup works. Basically the whole removed
section of code amounts to 'the array built in the first pass takes precedence over the one in the
second pass'. By using a property & only setting the array values when not-yet-set we can
allow the second pass to not clobber the first while populating it rather than as follow up wrangling