BUT the daunting question is how to deal with the allocation of recursive mutator objects
especially the nagging question is: - do we need to support children of mixed type - and how can we support those, wihtout massively indirected calls