add set_difference algorithm