add the functions