modify funcitons