fixed bug, added socket.io