template improve