template: implement XXX