pass functions into