extensible template