remove elements from self.value by matching.

        Create the exactly same single you want to delete and pass it(them) in.
        Normally this method needs to be overwrited by subclass. It only looks inside current instance's value, not recursive. There is no need for a recursive one anyway.

        Args:
            *l: a single element, a bunch of element seperated by comma, or a list of elements, or any combination. Element is what you match with.

def remove(self, *l):
        ''' remove elements from self.value by matching.

        Create the exactly same single you want to delete and pass it(them) in.
        Normally this method needs to be overwrited by subclass. It only looks inside current instance's value, not recursive. There is no need for a recursive one anyway.

        Args:
            *l: a single element, a bunch of element seperated by comma, or a list of elements, or any combination. Element is what you match with.
        '''
        removeList = list(flatten(l))
        self._remove(removeList, self.value)