simplify structure: choose nanomsg/zeromq with preprocessor