refactored SocketLink