allowing data_func in ifunc to have keyword arguments