Zmq architecture

If we ever do as I said in last comment, we might use here something like `str(MessageType)` instead of `msg_type`.