add by hai