I think the code would clean up some if we change the `cache_fetch` method to take the `args[:cache]` value as a parameter. It can then encapsulate more of the branching logic in one place.