added Sockets implementation