Refactor to use luvit's internal libuv bindings