Generalize template