undo/redo protocol buffers