improve libuv rpc implementation