update to use WebSocket