- Use zmq c library function names for unix error function name
- In case of errors, make sure do deallocate any zmq messages to aviod memory leak
- Use 'bracket' function for unittests to make sure context and sockets are released in case of failure
- Remove unused comments