switched from socket.io to sse