added template method