merge update from LiuLang:master