def find_index_common_oxygen(iz, site_1: int, site_2: int) -> int:
    """
    Finds a common oxygen, if it exists, between two T sites
    :param iz: imperfect MAZE-sim (or subclass) containing T sites
    :param site_1: index of T site 1
    :param site_2: index of T site 2
    :return:
    """
    iz.update_nl()
    nl1 = iz.neighbor_list.get_neighbors(site_1)[0]
    nl2 = iz.neighbor_list.get_neighbors(site_2)[0]
    # find common oxygen
    for i in nl1:
        if i in nl2:
            if iz[i].symbol == 'O':
                return i

    assert False, 'No middle oxygen found!!'