merge

merge the code from author branch(master);