added cache rationale