add template_function