implement fragment caching for portions of the page