rewrite RazorRender and design for caching.