code: def add(self, *value):
          '''convert value and add to self.value
  
          Subclass must overwrite this method.
          Subclass are responsible of creating whatever single instance it need from its ``add(*value)`` and call ``_add()`` to add them to ``self.value``
  
          Args:
              *value: the value to be added
          '''
          flattenedValueList = list(flatten(value))
          return self._add(flattenedValueList, self.valuef add(self, *value):
          '''convert value and add to self.value
  
          Subclass must overwrite this method.
          Subclass are responsible of creating whatever single instance it need from its ``add(*value)`` and call ``_add()`` to add them to ``self.value``
  
          Args:
              *value: the value to be added
          '''
          flattenedValueList = list(flatten(value))
          return self._add(flattenedValueList, self.value)
docs: convert value and add to self.value
  
          Subclass must overwrite this method.
          Subclass are responsible of creating whatever single instance it need from its ``add(*value)`` and call ``_add()`` to add them to ``self.value``
  
          Args:
              *value: the value to be added