a better algorithm, only checks the identity columns of each row, build object for each new identity and attaches those objects by reference to containing objects