does not check for duplicates in fringe so does not replace them when the successor wins, but works otherwise