working through bilinear interpolation