update template function