relaxed requirements on interpolate function