speed up by interpolation