fix cache behavior