use the template system