diff --git a/.travis.yml b/.travis.yml
index f2ecf57472ce7422e40aa63f1119c65bbad6d6b4..ef1b3b9058d0ca43a599c15da9fe2c6dfc602bcd 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,7 +3,7 @@ before_install:
 - git submodule update --init --recursive
 - sudo apt-get update -qq
 - sudo apt-get install -qq doxygen doxygen-latex libboost-all-dev libeigen3-dev liblapack-dev libblas-dev gfortran python-dev python-sphinx python-numpy
-- sudo pip install cpp-coveralls --use-mirrors
+- sudo pip install cpp-coveralls
 branches:
   only:
   - master
diff --git a/.travis/build b/.travis/build
index b6440fa76358992b20891896b48b270498d6d25e..0c3cf8b133bc070f42e7af65c97a1cd91b4d8c6b 100755
--- a/.travis/build
+++ b/.travis/build
@@ -34,9 +34,9 @@ install_dependency()
 # Retrieve jrl-mathtools
 install_dependency jrl-umi3218/jrl-mathtools
 install_dependency jrl-umi3218/jrl-mal
-install_dependency stack-of-tasks/dynamic-graph
-install_dependency stack-of-tasks/dynamic-graph-python
-install_dependency stack-of-tasks/sot-core
+install_dependency proyan/dynamic-graph
+install_dependency proyan/dynamic-graph-python
+install_dependency proyan/sot-core
 
 # Compile and run tests
 cd "$build_dir"
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a3ad2514ef0a35add9ba37aee780c12f846bf3f6..32698b1855562e532cdeb92abfefd9385abcd1b6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,6 +8,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 INCLUDE(cmake/base.cmake)
 INCLUDE(cmake/cpack.cmake)
 INCLUDE(cmake/python.cmake)
+INCLUDE(cmake/eigen.cmake)
 
 FINDPYTHON ()
 FIND_NUMPY ()
@@ -21,11 +22,14 @@ SET(${PROJECT_NAME}_HEADERS
 )
 
 SETUP_PROJECT()
-# Trigger dependency to dynamic-graph-python
-ADD_REQUIRED_DEPENDENCY("sot-core >= 2.5")
+
 # Add dependency to libsot-tools.so library in pkg-config file.
 PKG_CONFIG_APPEND_LIBS("sot-tools")
 
+# Trigger dependency to dynamic-graph-python
+ADD_REQUIRED_DEPENDENCY("sot-core >= 3.0")
+
+SEARCH_FOR_EIGEN()
 ADD_SUBDIRECTORY(src)
 
 SETUP_PROJECT_FINALIZE()
diff --git a/src/cubic-interpolation-se3.cc b/src/cubic-interpolation-se3.cc
index c449b2861db8cc59a3b48095e0fbfb2c7bef23e2..ed2741e4513d3a1b13412238d3cfea3314e32726 100644
--- a/src/cubic-interpolation-se3.cc
+++ b/src/cubic-interpolation-se3.cc
@@ -158,12 +158,12 @@ namespace dynamicgraph {
 	  p1_ (1) = 0.;
 	  p1_ (2) = 0.;
 	  // Goal position
-	  maal::boost::Vector P_T (3);
+	  Vector P_T (3);
 	  P_T (0) = goalSIN_.accessCopy () (0,3);
 	  P_T (1) = goalSIN_.accessCopy () (1,3);
 	  P_T (2) = goalSIN_.accessCopy () (2,3);
 	  // Final velocity
-	  maal::boost::Vector D_T (3); D_T.setZero ();
+	  Vector D_T (3); D_T.setZero ();
 	  p2_ = (D_T + p1_*2)*(-1./T) + (P_T - p0_)*(3./(T*T));
 	  p3_ = (P_T -p0_)*(-2/(T*T*T)) + (p1_ + D_T)*(1./(T*T));
 	  state_ = 1;
diff --git a/src/cubic-interpolation-se3.hh b/src/cubic-interpolation-se3.hh
index e0c12d54b726fea11cd0d393b8d5e2656f9d4cd5..ca5d6e771fe480d53794f75d126fbcb72aa229c5 100644
--- a/src/cubic-interpolation-se3.hh
+++ b/src/cubic-interpolation-se3.hh
@@ -10,9 +10,7 @@
 # include <dynamic-graph/entity.h>
 # include <dynamic-graph/signal-ptr.h>
 # include <dynamic-graph/signal-time-dependent.h>
-# include <sot/core/matrix-homogeneous.hh>
-
-# include <jrl/mal/matrixabstractlayer.hh>
+# include <sot/core/matrix-geometry.hh>
 
 namespace dynamicgraph {
   namespace sot {
diff --git a/src/seqplay.cc b/src/seqplay.cc
index 7c61fdf8d679ae1df9731b23bf57daa92584c87f..ec9cae6ba531e6ac1a67bbaa63485d39acf2463e 100644
--- a/src/seqplay.cc
+++ b/src/seqplay.cc
@@ -640,10 +640,10 @@ namespace dynamicgraph
           {
             velocity (i) = (M1 (i, 3) - M0 (i, 3)) * dt;
           }
-          M1.extract (R1_);
-          M0.extract (R0_);
-          R0_.transpose (R0t_);
-          R1_.multiply (R0t_, R1R0t_);
+          R1_ = M1.linear();
+          R0_ = M0.linear();
+          R0t_ = R0_.transpose();
+          R1R0t_ = R1_*R0t_;
           velocity (3) = (R1R0t_ (2, 1))*dt;
           velocity (4) = (R1R0t_ (0, 2))*dt;
           velocity (5) = (R1R0t_ (1, 0))*dt;
@@ -914,7 +914,7 @@ namespace dynamicgraph
 
 
 
-            for (unsigned i=0; i < comddot.size (); ++i)
+            for (int i=0; i < comddot.size (); ++i)
             {
               comddot (i) = (qdot_1 (i) - qdot_0 (i)) * dt_0;
             }
diff --git a/src/seqplay.hh b/src/seqplay.hh
index a93e4e3d5dcea5c1aa320d932cea05f8aabf1808..eb932513ecb1cb5c494647321f86684d9168b185 100644
--- a/src/seqplay.hh
+++ b/src/seqplay.hh
@@ -15,8 +15,7 @@
 # include <dynamic-graph/factory.h>
 # include <dynamic-graph/linear-algebra.h>
 # include <dynamic-graph/signal.h>
-# include <sot/core/matrix-homogeneous.hh>
-# include <sot/core/matrix-rotation.hh>
+# include <sot/core/matrix-geometry.hh>
 
 namespace dynamicgraph {
   namespace sot {