add extra context
add qrcode support
fix some context bug