code: def __new_attr(self, name, attr):
          
          if isinstance(attr, Pref):
              # Child attribute already has a Pref wrapping
              if VERBOSE_PREF:
                  print('[pref.__new_attr]: %s.%s = %r' % (self._intern.name, name, attr.value()))
              new_childx = len(self._tree.child_names)
              # Children know about parents
              attr._tree.parent = self     # Give child parent
              attr._intern.name = name     # Give child name
              if attr._intern.depeq is None:
                  attr._intern.depeq = self._intern.depeq  # Give child parent dependencies
              if attr._intern.hidden:
                  self._tree.hidden_children.append(new_childx)
                  self._tree.hidden_children.sort()
              # Used for QTIndexing
              attr._intern.aschildx = new_childx
              # Parents know about children
              self._tree.child_names.append(name)  # Add child to tree
              self._tree.child_list.append(attr)
              self.__dict__[name] = attr.value()   # Add child value to dict
          else:
              # The child attribute is not wrapped. Wrap with Pref and readd.
              pref_attr = Pref(default=attr)
              self.__new_attr(name, pref_attr)
docs: On a new child attribute:
              1) Check to see if it is wrapped by a Pref object
              2) If not do so, if so add it to the tree structure