@jkeck and I have had significant difficulty struggling with callbacks on the model.  Having a factory helps disentangle the responsibility of persisting some data from the responsibility of building a complex tree of objects.