added template for protocols