add all the functions