added pick_with_result