add by haidong