From CybOX 1.x to Cybox 2.0.0, there was a structural change in the way
        observable properties are included in the XML: in CybOX 1.x, they
        were embedded in an element called 'Defined_Object' -- since CybOX 2.x,
        we have the 'Properties' element. Here, we rename occurrences of 'Defined_Object'
        in a fact term with 'Properties'. As a result, fact terms for, e.g.,
        'Properties/Header/To/Recipient/AddressValue' for an Email object are the same
        for imports from Cybox 1.x and Cybox 2.x.

def cybox_defined_object_in_fact_term_handler(self, enrichment, fact, attr_info, add_fact_kargs):
        """
        From CybOX 1.x to Cybox 2.0.0, there was a structural change in the way
        observable properties are included in the XML: in CybOX 1.x, they
        were embedded in an element called 'Defined_Object' -- since CybOX 2.x,
        we have the 'Properties' element. Here, we rename occurrences of 'Defined_Object'
        in a fact term with 'Properties'. As a result, fact terms for, e.g.,
        'Properties/Header/To/Recipient/AddressValue' for an Email object are the same
        for imports from Cybox 1.x and Cybox 2.x.
        """
        add_fact_kargs['fact_term_name'] = self.RE_DEFINED_OBJECT.sub('Properties', fact['term'])
        return True