using libuv extensively