template driver