adjust some functions