added socket.io for communication