diff --git a/include/curves/.nfs00000000012611f60000004d b/include/curves/.nfs00000000012611f60000004d
deleted file mode 100644
index 5066f836c90556516b1e45bb0cb832fc607fd7a2..0000000000000000000000000000000000000000
--- a/include/curves/.nfs00000000012611f60000004d
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
-* \file bezier_curve.h
-* \brief class allowing to create a Bezier curve of dimension 1 <= n <= 3.
-* \author Steve T.
-* \version 0.1
-* \date 06/17/2013
-*/
-
-
-#ifndef _CLASS_BERNSTEIN
-#define _CLASS_BERNSTEIN
-
-#include "curve_abc.h"
-
-#include "MathDefs.h"
-
-#include <math.h>
-#include <vector>
-#include <stdexcept>
-
-namespace curves
-{
-/// \brief Computes factorial of a number.
-/// \param n : an unsigned integer.
-/// \return \f$n!\f$
-///
-inline unsigned int fact(const unsigned int n)
-{
-    unsigned int res = 1;
-    for (unsigned int i=2 ; i <= n ; ++i)
-       res *= i;
-    return res;
-}
-
-/// \brief Computes a binomial coefficient.
-/// \param n : an unsigned integer.
-/// \param k : an unsigned integer.
-/// \return \f$\binom{n}{k}f$
-///
-inline unsigned int bin(const unsigned  int n, const unsigned  int k)
-{
-    return fact(n) / (fact(k) * fact(n - k));
-}
-
-/// \class Bernstein.
-/// \brief Computes a Bernstein polynome.
-///
-template <typename Numeric = double>
-struct Bern{
-Bern(const unsigned int m, const unsigned int i)
-    :m_minus_i(m - i)
-    ,i_(i)
-    ,bin_m_i_(bin(m,i)) {}
-
-~Bern(){}
-
-Numeric operator()(const Numeric u) const
-{
-    assert(u >= 0. && u <= 1.);
-    return bin_m_i_*(pow(u, i_)) *pow((1-u),m_minus_i);
-}
-
-Numeric m_minus_i;
-Numeric i_;
-Numeric bin_m_i_;
-};
-
-/// \brief Computes all Bernstein polynomes for a certain degree.
-///
-template <typename Numeric>
-std::vector<Bern<Numeric> > makeBernstein(const unsigned int n)
-{
-    std::vector<Bern<Numeric> > res;
-    for(unsigned int i = 0; i<= n; ++i)
-        res.push_back(Bern<Numeric>(n, i));
-    return res;
-}
-} // namespace curves
-#endif //_CLASS_BERNSTEIN
-
diff --git a/include/curves/cubic_hermite_spline.h b/include/curves/cubic_hermite_spline.h
index 5735133d06ae6fd97e45976ce0db6c97df0b02e6..e2df731d348ef4c68b4750aa99356d0a71a248e9 100644
--- a/include/curves/cubic_hermite_spline.h
+++ b/include/curves/cubic_hermite_spline.h
@@ -2,7 +2,6 @@
 #define _CLASS_CUBICHERMITESPLINE
 
 #include "curve_abc.h"
-#include "bernstein.h"
 #include "curve_constraint.h"
 
 #include "MathDefs.h"
@@ -77,7 +76,7 @@ struct cubic_hermite_spline : public curve_abc<Time, Numeric, Dim, Safe, Point>
         {
             control_points_.push_back(*it);
         }
-        setTimeSplines(time_control_points);
+        setTime(time_control_points);
 	}
 
 	/// \brief Destructor.
@@ -120,7 +119,7 @@ struct cubic_hermite_spline : public curve_abc<Time, Numeric, Dim, Safe, Point>
     /// values corresponding to times for \f$P_0, P_1, P_2, ..., P_N\f$ respectively.<br>
     /// \param time_control_points : Vector containing time for each control point.
     ///
-    void setTimeSplines(const Vector_time & time_control_points)
+    void setTime(const Vector_time & time_control_points)
     {
         time_control_points_ = time_control_points;
         T_min_ = time_control_points_.front();
@@ -136,29 +135,6 @@ struct cubic_hermite_spline : public curve_abc<Time, Numeric, Dim, Safe, Point>
         }
     }
 
-    /// \brief Set duration by default of each spline.
-    /// Set a linear time from 0 to 1 for each control point with a \f$step=1.0/N\f$ 
-    /// where \f$N\f$ is the number of control points.<br>
-    /// Exemple for 5 control points : vector time_control_points_ will contain \f$(0., 0.25, 0.5, 0.75, 1.0)\f$
-    /// corresponding to time for \f$P_0\f$, \f$P_1\f$, \f$P_2\f$, \f$P_3\f$ and \f$P_4\f$ respectively.
-    ///
-    void setTimeSplinesDefault()
-    {
-        time_control_points_.clear();
-        T_min_ = 0.;
-        T_max_ = 1.;
-        Time timestep = (T_max_- T_min_) / (control_points_.size()-1);
-        Time time = 0.;
-        Index i = 0;
-        for (i=0; i<size(); i++)
-        {
-            //time_control_points_.push_back(time);
-            time_control_points_.push_back(time);
-            time += timestep;
-        }
-        computeDurationSplines();
-    }
-
     /// \brief Get vector of pair (positition, derivative) corresponding to control points.
     /// \return vector containing control points.
     ///
@@ -170,7 +146,7 @@ struct cubic_hermite_spline : public curve_abc<Time, Numeric, Dim, Safe, Point>
     /// \brief Get vector of Time corresponding to Time for each control point.
     /// \return vector containing time of each control point.
     ///
-    Vector_time getTimeSplines()
+    Vector_time getTime()
     {
         return time_control_points_;
     }
@@ -234,7 +210,11 @@ struct cubic_hermite_spline : public curve_abc<Time, Numeric, Dim, Safe, Point>
         Numeric h00, h10, h01, h11;
         evalCoeffs(alpha,h00,h10,h01,h11,order_derivative);
         //std::cout << "for val t="<<t<<" coef : h00="<<h00<<" h10="<<h10<<" h01="<<h01<<" h11="<<h11<<std::endl;
-        Point p_ = (h00 * Pair0.first + h10 * Pair0.second + h01 * Pair1.first + h11 * Pair1.second);
+        Point p_ = (h00 * Pair0.first + h10 * Pair0.second * dt + h01 * Pair1.first + h11 * Pair1.second * dt);
+        for (std::size_t i=0; i<order_derivative; i++)
+        {
+            p_ /= dt;
+        }
         return p_;
     }
 
diff --git a/tests/Main.cpp b/tests/Main.cpp
index be4f44988ff37b63eb2f7601aa07f2066000980c..75c4106451f5806384691177fdffebdcc76cfd60 100644
--- a/tests/Main.cpp
+++ b/tests/Main.cpp
@@ -968,23 +968,19 @@ void CubicHermitePairsPositionDerivativeTest(bool& error)
     control_points.push_back(Pair_point_tangent(P0,T0));
     time_control_points.push_back(0.);  // Time at P0
     control_points.push_back(Pair_point_tangent(P1,T1));
-    time_control_points.push_back(1.);  // Time at P1
+    time_control_points.push_back(2.);  // Time at P1
     // Create cubic hermite spline
     cubic_hermite_spline_t cubic_hermite_spline_1Pair(control_points.begin(), control_points.end(), time_control_points);
-    cubic_hermite_spline_1Pair.setTimeSplinesDefault();
+    cubic_hermite_spline_1Pair.setTime(time_control_points);
     //Check
     res1 = cubic_hermite_spline_1Pair(0.);   // t=0
     ComparePoints(P0, res1, errmsg1, error);
-    res1 = cubic_hermite_spline_1Pair(1.);   // t=1
+    res1 = cubic_hermite_spline_1Pair(2.);   // t=1
     ComparePoints(P1, res1, errmsg1, error);
-    res1 = cubic_hermite_spline_1Pair(0.5);  // t=0.5
-    ComparePoints(point_t(0.55,1.0375,1.625), res1, errmsg2, error);
     // Test derivative : two pairs
     res1 = cubic_hermite_spline_1Pair.derivate(0.,1);
     ComparePoints(T0, res1, errmsg3, error);
-    res1 = cubic_hermite_spline_1Pair.derivate(0.5,1);
-    ComparePoints(point_t(1.35,2.825,4.5), res1, errmsg3, error);
-    res1 = cubic_hermite_spline_1Pair.derivate(1.,1);
+    res1 = cubic_hermite_spline_1Pair.derivate(2.,1);
     ComparePoints(T1, res1, errmsg3, error);
 
     // Three pairs
@@ -1001,8 +997,6 @@ void CubicHermitePairsPositionDerivativeTest(bool& error)
     ComparePoints(P1, res1, errmsg2, error);
     res1 = cubic_hermite_spline_2Pairs(5.);  // t=5
     ComparePoints(P2, res1, errmsg1, error);
-    res1 = cubic_hermite_spline_2Pairs(1.);  // t=1.0 , same than in two pairs at t=0.5
-    ComparePoints(point_t(0.55,1.0375,1.625), res1, errmsg2, error);
     // Test derivative : three pairs
     res1 = cubic_hermite_spline_2Pairs.derivate(0.,1);
     ComparePoints(T0, res1, errmsg3, error);
@@ -1012,7 +1006,11 @@ void CubicHermitePairsPositionDerivativeTest(bool& error)
     ComparePoints(T2, res1, errmsg3, error);
     // Test time control points by default => with N control points : 
     // Time at P0= 0. | Time at P1= 1.0/(N-1) | Time at P2= 2.0/(N-1) | ... | Time at P_(N-1)= (N-1)/(N-1)= 1.0
-    cubic_hermite_spline_2Pairs.setTimeSplinesDefault();
+    time_control_points.clear();
+    time_control_points.push_back(0.);  // Time at P0
+    time_control_points.push_back(0.5);  // Time at P1
+    time_control_points.push_back(1.);  // Time at P2
+    cubic_hermite_spline_2Pairs.setTime(time_control_points);
     res1 = cubic_hermite_spline_2Pairs(0.);  // t=0
     ComparePoints(P0, res1, errmsg1, error);
     res1 = cubic_hermite_spline_2Pairs(0.5); // t=0.5