allowing custom interpolations and implementing bezier interpolation