replace tuple_interpolator with more general func_interpolator