implement cache pre-warming