adjust some function interfaces