Add protobuf support