I don't really like to have two ways to do things, here you can set the child in the constructor *or* using this function, which adds another code path which could have bugs. I would choose one.