only added linear interpolation