implement chosen_cases
consider chosen_cases when caching