added weighted quick union