use cache effectively