add tons of comment, revamp some methods, fix sesn issue in trans with
nfc phone