add Protocol Buffers support