merge with trunk

merge with trunk