refactored search_by_choices