apply templates