def add(self, intervention, id=None):
        """
        Add an intervention to intervention/human section.
        intervention is either ElementTree or xml snippet
        """
        if self.et is None:
            return

        assert isinstance(intervention, six.string_types)
        et = ElementTree.fromstring(intervention)
        component = None

        if et.find("ITN") is not None:
            component = ITN(et)
        elif et.find("GVI") is not None:
            component = GVI(et)
        elif et.find("MDA") is not None:
            component = MDA(et)
        elif et.find("TBV") is not None or et.find("PEV") is not None or et.find("BSV") is not None:
            component = Vaccine(et)
        else:
            return

        assert isinstance(component.name, six.string_types)

        if id is not None:
            assert isinstance(id, six.string_types)
            et.attrib["id"] = id

        index = len(self.et.findall("component"))
        self.et.insert(index, et)