function and util