use trigger interface