converted to template