added interpolation functions, reluctantly using floating point for now...