add by lijun