socket version working