fix should_cache?
call :cache_key