added interpolation algo