protected Template buildInstance(Class<?> c)
     throws NoSuchMethodException, InstantiationException, IllegalAccessException,
         InvocationTargetException {
   Constructor<?> cons = c.getConstructor(new Class[] {Class.class, Template[].class});
   Object tmpl = cons.newInstance(new Object[] {origClass, templates});
   return (Template) tmpl;
 }