diff --git a/bindings/python/joint.hpp b/bindings/python/joint.hpp
index 9014d720fdbbb2e9609aa0db29bc280911f6ccf6..094bb7f02102f11fa6268a549bd5a0c2e6b9e90d 100644
--- a/bindings/python/joint.hpp
+++ b/bindings/python/joint.hpp
@@ -20,7 +20,7 @@
 
 #include <eigenpy/exception.hpp>
 #include <eigenpy/eigenpy.hpp>
-#include "pinocchio/multibody/joint/joint.hpp"
+#include "pinocchio/multibody/joint/joint-composite.hpp"
 
 namespace se3
 {
diff --git a/src/multibody/joint/joint-composite.hpp b/src/multibody/joint/joint-composite.hpp
index 26b7e3ac1e1f79a92ad4c435a608e7206e6daeff..82585752e844111fa172205d326fc8dce2111abc 100644
--- a/src/multibody/joint/joint-composite.hpp
+++ b/src/multibody/joint/joint-composite.hpp
@@ -19,7 +19,6 @@
 #define __se3_joint_composite_hpp__
 
 #include "pinocchio/assert.hpp"
-// #include "pinocchio/multibody/joint/joint-basic-visitors.hpp"
 #include "pinocchio/multibody/joint/joint.hpp"
 
 EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION(se3::SE3)
diff --git a/src/multibody/joint/joint-variant.hpp b/src/multibody/joint/joint-variant.hpp
index 64fdacff960090717316251109dbc34576314bfa..b1e2b43c278cd683229d7d33b618e4bdd9a67f26 100644
--- a/src/multibody/joint/joint-variant.hpp
+++ b/src/multibody/joint/joint-variant.hpp
@@ -42,6 +42,11 @@ namespace se3
   struct JointModelComposite;
   struct JointDataComposite;
 
+  // The JointModelComposite contains several JointModel (which are JointModelVariant). Hence there is a circular
+  // dependency between JointModelComposite and JointModelVariant that can be resolved with the use of boost::recursive_variant
+  // For more details, see http://www.boost.org/doc/libs/1_58_0/doc/html/variant/tutorial.html#variant.tutorial.recursive 
+  //
+  // The same applies for JointDataComposite
   typedef boost::variant< JointModelRX, JointModelRY, JointModelRZ, JointModelRevoluteUnaligned, JointModelSpherical,
                           JointModelSphericalZYX, JointModelPX, JointModelPY, JointModelPZ,
                           JointModelPrismaticUnaligned, JointModelFreeFlyer, JointModelPlanar, JointModelTranslation,
diff --git a/src/multibody/model.hpp b/src/multibody/model.hpp
index 38f2a0f2b6eea1569d579252b6613d74d944a9c2..6e478a9bcf85b0e1847afd6590435afda705e897 100644
--- a/src/multibody/model.hpp
+++ b/src/multibody/model.hpp
@@ -26,7 +26,6 @@
 #include "pinocchio/spatial/inertia.hpp"
 #include "pinocchio/multibody/fwd.hpp"
 #include "pinocchio/multibody/frame.hpp"
-// #include "pinocchio/multibody/joint/joint.hpp"
 #include "pinocchio/multibody/joint/joint-composite.hpp"
 #include "pinocchio/deprecated.hh"
 #include "pinocchio/tools/string-generator.hpp"
diff --git a/src/multibody/visitor.hpp b/src/multibody/visitor.hpp
index e430fd5add59deb5a68f728b6ba08fd794694107..d0cce5bb57d86d4d30e86f65602b7f0cb5245ad6 100644
--- a/src/multibody/visitor.hpp
+++ b/src/multibody/visitor.hpp
@@ -61,16 +61,6 @@ namespace se3
 			       static_cast<const Visitor*>(this)->args));
       }
 
-  //     void operator() (const JointModelBase<JointModelComposite> & jmodel) const
-  //     {
-  // JointDataVariant& jdataSpec = static_cast<const Visitor*>(this)->jdata;
-
-  // bf::invoke(&Visitor::template algo<JointModelComposite>,
-  //      bf::append2(jmodel,
-  //            boost::ref(boost::get<JointDataComposite>(jdataSpec)),
-  //            static_cast<const Visitor*>(this)->args));
-  //     }
-
       template<typename ArgsTmp>
       static void run(const JointModelVariant & jmodel,
 		      JointDataVariant & jdata,