new template with hook mechanism