set_name now occurs before set_parent.

might we also want to call set_name if @name?