Changed to support unique_with