gen_template