structure code
remove useless code
refine diff code