before socket.io integration