added all of the functions