generate templates