add some funcitons