function interface updated