new template, refactoring