refactoring
templates