pass a fuction handle as an argument