add new code
merge some code