change interface of some functions