Chenjielin/code

merge this to master