- further refinement on caching