now with sockets