Implement experimental support for protocols #75