updated funcitons