changed hierarchy recurse function to put back original (changed)
children so methods on that array won't get clobbered