start of template, nonfunctional