Why not just call this `TemplateEngine`? (and `RegisterTemplateEngine`)