code: def update(self, iterable={}, **kwargs):
          
          def _merge(a, *args):
              for key, value in itertools.chain(*args):
                  if key in a and isinstance(value, (dict, Conf)):
                      value = _merge(a[key], value.items())
                  a[key] = value
              return a
  
          # adopt iterable sequence to unified interface: (key, value)
          if isinstance(iterable, (dict, Conf)):
              iterable = iterable.items()
  
          # iterate and update values
          _merge(self._data, iterable, kwargs.items())
docs: Updates recursively a self with a given iterable.
  
          TODO: rewrite this ugly stuff