add caching and render sections