add more cache functions