websocket improvements