Add SocketType enum
do not throw from destructor. move static context to module instead of class.
close socket in destructor
some message related code
some message/socket stuff