Reorganize so that caching happens regardless of whether we're rate-limited.