with the functions filled in