moving cache to per-request