allow extractors to opt-out of caching - helpful when endpoints are both responsive and have lots of data
nil is implicitly returned when return is empty, so no need to be explicit here