finish the function of hu