Merging socket.io work into master