alternative template() structure and par.template() function