actually caching templates, doh