almost there with group protocol buffers