diff --git a/include/eigenpy/angle-axis.hpp b/include/eigenpy/angle-axis.hpp
index 894d9bfbac73ad7f4c50af00ee5a5706e4a070e3..7bfb76e7cfdd4c53347f8bed2ce77a664cacffb9 100644
--- a/include/eigenpy/angle-axis.hpp
+++ b/include/eigenpy/angle-axis.hpp
@@ -46,15 +46,13 @@ class AngleAxisVisitor : public bp::def_visitor<AngleAxisVisitor<AngleAxis> > {
   template <class PyClass>
   void visit(PyClass& cl) const {
     cl.def(bp::init<>(bp::arg("self"), "Default constructor"))
-        .def(bp::init<Scalar, Vector3>(
-            (bp::arg("self"), bp::arg("angle"), bp::arg("axis")),
-            "Initialize from angle and axis."))
-        .def(bp::init<Matrix3>((bp::arg("self"), bp::arg("R")),
+        .def(bp::init<Scalar, Vector3>(bp::args("self", "angle", "axis"),
+                                       "Initialize from angle and axis."))
+        .def(bp::init<Matrix3>(bp::args("self", "R"),
                                "Initialize from a rotation matrix"))
-        .def(bp::init<Quaternion>((bp::arg("self"), bp::arg("quaternion")),
+        .def(bp::init<Quaternion>(bp::args("self", "quaternion"),
                                   "Initialize from a quaternion."))
-        .def(bp::init<AngleAxis>((bp::arg("self"), bp::arg("copy")),
-                                 "Copy constructor."))
+        .def(bp::init<AngleAxis>(bp::args("self", "copy"), "Copy constructor."))
 
         /* --- Properties --- */
         .add_property(
diff --git a/include/eigenpy/decompositions/LDLT.hpp b/include/eigenpy/decompositions/LDLT.hpp
index 1fa5d7ec96db4e0bda6fdb13f4e406a2c7ba1cdb..3d289d85e1d0d34c802a5094222991721861b35a 100644
--- a/include/eigenpy/decompositions/LDLT.hpp
+++ b/include/eigenpy/decompositions/LDLT.hpp
@@ -29,11 +29,12 @@ struct LDLTSolverVisitor
   template <class PyClass>
   void visit(PyClass &cl) const {
     namespace bp = boost::python;
-    cl.def(bp::init<>("Default constructor"))
+    cl.def(bp::init<>(bp::arg("self"), "Default constructor"))
         .def(bp::init<Eigen::DenseIndex>(
-            bp::arg("size"), "Default constructor with memory preallocation"))
+            bp::args("self", "size"),
+            "Default constructor with memory preallocation"))
         .def(bp::init<MatrixType>(
-            bp::arg("matrix"),
+            bp::args("self", "matrix"),
             "Constructs a LDLT factorization from a given matrix."))
 
         .def("isNegative", &Solver::isNegative, bp::arg("self"),
diff --git a/include/eigenpy/decompositions/LLT.hpp b/include/eigenpy/decompositions/LLT.hpp
index 94361c7f251773478605b7e9de22da74322e1dc3..0fdfea4dd3e708913819a2fb424f18fc3e96433f 100644
--- a/include/eigenpy/decompositions/LLT.hpp
+++ b/include/eigenpy/decompositions/LLT.hpp
@@ -29,11 +29,12 @@ struct LLTSolverVisitor
   template <class PyClass>
   void visit(PyClass &cl) const {
     namespace bp = boost::python;
-    cl.def(bp::init<>("Default constructor"))
+    cl.def(bp::init<>(bp::arg("self"), "Default constructor"))
         .def(bp::init<Eigen::DenseIndex>(
-            bp::arg("size"), "Default constructor with memory preallocation"))
+            bp::args("self", "size"),
+            "Default constructor with memory preallocation"))
         .def(bp::init<MatrixType>(
-            bp::arg("matrix"),
+            bp::args("self", "matrix"),
             "Constructs a LLT factorization from a given matrix."))
 
         .def("matrixL", &matrixL, bp::arg("self"),
diff --git a/include/eigenpy/decompositions/SelfAdjointEigenSolver.hpp b/include/eigenpy/decompositions/SelfAdjointEigenSolver.hpp
index bffeceb118d0d98a4d4497168e6b2ef15e290850..f7ac469cdfd0d875043af6d1c3276475b8d8723b 100644
--- a/include/eigenpy/decompositions/SelfAdjointEigenSolver.hpp
+++ b/include/eigenpy/decompositions/SelfAdjointEigenSolver.hpp
@@ -25,11 +25,12 @@ struct SelfAdjointEigenSolverVisitor
   template <class PyClass>
   void visit(PyClass& cl) const {
     namespace bp = boost::python;
-    cl.def(bp::init<>("Default constructor"))
+    cl.def(bp::init<>(bp::arg("self"), "Default constructor"))
         .def(bp::init<Eigen::DenseIndex>(
-            bp::arg("size"), "Default constructor with memory preallocation"))
+            bp::args("self", "size"),
+            "Default constructor with memory preallocation"))
         .def(bp::init<MatrixType, bp::optional<int> >(
-            bp::args("matrix", "options"),
+            bp::args("self", "matrix", "options"),
             "Computes eigendecomposition of given matrix"))
 
         .def("eigenvalues", &Solver::eigenvalues, bp::arg("self"),
diff --git a/include/eigenpy/decompositions/minres.hpp b/include/eigenpy/decompositions/minres.hpp
index 573e9ee9da701cd2380151291c005377f6067a1f..747cbcd895790b1d627bbdb64a520aec80b05e19 100644
--- a/include/eigenpy/decompositions/minres.hpp
+++ b/include/eigenpy/decompositions/minres.hpp
@@ -138,9 +138,9 @@ struct MINRESSolverVisitor
   template <class PyClass>
   void visit(PyClass& cl) const {
     namespace bp = boost::python;
-    cl.def(bp::init<>("Default constructor"))
+    cl.def(bp::init<>(bp::arg("self"), "Default constructor"))
         .def(bp::init<MatrixType>(
-            bp::arg("matrix"),
+            bp::args("self", "matrix"),
             "Initialize the solver with matrix A for further Ax=b solving.\n"
             "This constructor is a shortcut for the default constructor "
             "followed by a call to compute()."))
diff --git a/include/eigenpy/solvers/BasicPreconditioners.hpp b/include/eigenpy/solvers/BasicPreconditioners.hpp
index 7883e61d519015c3d23a4cf0f3b707363081548f..053468296e8a9456f6bd6095bcaa14132468d1af 100644
--- a/include/eigenpy/solvers/BasicPreconditioners.hpp
+++ b/include/eigenpy/solvers/BasicPreconditioners.hpp
@@ -34,7 +34,7 @@ struct PreconditionerBaseVisitor
   template <class PyClass>
   void visit(PyClass& cl) const {
     cl.def(bp::init<>("Default constructor"))
-        .def(bp::init<MatrixType>(bp::arg("A"),
+        .def(bp::init<MatrixType>(bp::args("self", "A"),
                                   "Initialize the preconditioner with matrix A "
                                   "for further Az=b solving."))
 #if EIGEN_VERSION_AT_LEAST(3, 3, 0)