restructure the QR refresh