Added support for protocols