converted to templates