big work on query cancelation support, abstracting away from socket.io