add socket.io and design