modify by xiugai suggest