add template compiler