Modified the construction so that children are appended later. This allows objects to be added to the cache before taking derivatives so that the loops are implicitly closed with no need for RecursiveParser or DFut