template-pattern add