diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6886681a4fb8a0cd4240610e0ea59aca91e493b4..f0bc1a3d61ffb2ecd2df299fbc0ef238ab6bd5ec 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -39,7 +39,6 @@ IF(BUILD_PYTHON_INTERFACE)
 	find_package( Boost COMPONENTS python REQUIRED )
 	include_directories( ${Boost_INCLUDE_DIR} )
 
-	SET(PKG_CONFIG_PYWRAP_REQUIRES "eigenpy >= 1.3.1")
 ENDIF(BUILD_PYTHON_INTERFACE)
 
 
diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index 34d43906b2023a9b5e95ff1a583053d8e75e4ab1..c5fbdae0d43874750751e4b37ca75be2b1c15163 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -3,10 +3,19 @@ cmake_minimum_required( VERSION 2.8 )
 include_directories("${INCLUDE_DIR}")
 include_directories("${EIGEN3_INCLUDE_DIR}")
 
+ADD_REQUIRED_DEPENDENCY("eigenpy")
+
+
 # Define the wrapper library that wraps our library
 add_library( centroidal_dynamics SHARED centroidal_dynamics_python.cpp )
 target_link_libraries( centroidal_dynamics ${Boost_LIBRARIES} ${PROJECT_NAME} )
 # don't prepend wrapper library name with lib
 set_target_properties( centroidal_dynamics PROPERTIES PREFIX "" )
 
+IF(APPLE)
+	# We need to change the extension for python bindings
+	SET_TARGET_PROPERTIES(centroidal_dynamics PROPERTIES SUFFIX ".so")
+ENDIF(APPLE)
+PKG_CONFIG_USE_DEPENDENCY(centroidal_dynamics eigenpy)
+
 #INSTALL(TARGETS centroidal_dynamics DESTINATION lib)
diff --git a/python/centroidal_dynamics_python.cpp b/python/centroidal_dynamics_python.cpp
index 91aa651a78757a59c82259c68b611e91f23de447..9b8cb2764cfde4174d37ae5da146e5ffcc871df3 100644
--- a/python/centroidal_dynamics_python.cpp
+++ b/python/centroidal_dynamics_python.cpp
@@ -3,6 +3,7 @@
 
 #include <eigenpy/memory.hpp>
 #include <eigenpy/eigenpy.hpp>
+#include <eigenpy/geometry.hpp>
 
 #include <boost/python.hpp>
 
@@ -12,10 +13,10 @@ namespace centroidal_dynamics
 {
 using namespace boost::python;
 
-bool wrapSetNewContacts(Equilibrium& self, MatrixX3 contactPoints, MatrixX3 contactNormals,
-                    double frictionCoefficient, EquilibriumAlgorithm alg)
+bool wrapSetNewContacts(Equilibrium& self, const MatrixXX& contactPoints, const MatrixXX& contactNormals) //,
+                    //double frictionCoefficient, EquilibriumAlgorithm alg)
 {
-    return self.setNewContacts(contactPoints, contactNormals, frictionCoefficient, alg);
+    return self.setNewContacts(contactPoints, contactNormals, 0.3, EQUILIBRIUM_ALGORITHM_LP);
 }
 
 
@@ -25,8 +26,9 @@ BOOST_PYTHON_MODULE(centroidal_dynamics)
     eigenpy::enableEigenPy();
 
     eigenpy::enableEigenPySpecific<MatrixX3,MatrixX3>();
-    /*eigenpy::exposeAngleAxis();
-    eigenpy::exposeQuaternion();*/
+    eigenpy::enableEigenPySpecific<MatrixXX,MatrixXX>();
+    eigenpy::exposeAngleAxis();
+    eigenpy::exposeQuaternion();
 
     /** END eigenpy init**/