template method changes