updated and added socket.io