add qr code, wisp, refactor