update (use templates)