cleaned interpolate