Add support for protocols