update funcitons