add utility3 function