add utility4 function