merge new code

merge new code