reduces usage of macros for template loading/compilation
allows changing the template compiler
provides transient template compiler
extracts dispatch process from controller
uses controller convenience macros in tests