Feature/template compiler