modify by wujianqiang