template method add