update new funciton