added a bunch of funcitons