don't accidently call global f() function, but instead fp(), which is what was passed in