m: change function interface