code by master
code by new3
code by new4
code by new4 - 1
code by new3-1
merge new3 with new4
after merge
code by master2
merge master and new3