updated with template