switch template compiler