merge some code
conflict