added protobuf and message queue, its ugly but it works.