<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def fetch_new_id(self, ):
 """Return a new id for the given reftrack to be set on the refobject The id can identify reftracks that share the same parent, type and element. :returns: A new id :rtype: int :raises: None """

        parent = self.get_parent()
        if parent:
            others = parent._children
        else:
            others = [r for r in self.get_root()._reftracks if r.get_parent() is None]
        others = [r for r in others
                  if r != self
                  and r.get_typ() == self.get_typ()
                  and r.get_element() == self.get_element()]
        highest = -1
        for r in others:
            identifier = r.get_id()
            if identifier > highest:
                highest = identifier
        return highest + 1