added catmull rom spline interpolation