diff --git a/include/hpp/manipulation/problem-solver.hh b/include/hpp/manipulation/problem-solver.hh
index 3d7466c94dd6e4646cd00cd0601373256901fff6..64369d93dcba46b21a308a288ba379342391cc77 100644
--- a/include/hpp/manipulation/problem-solver.hh
+++ b/include/hpp/manipulation/problem-solver.hh
@@ -40,10 +40,7 @@ namespace hpp {
         virtual ~ProblemSolver ()
         {}
 
-        ProblemSolver () :
-          core::ProblemSolver (), robot_ (), problem_ (0x0), graspsMap_()
-        {
-        }
+        ProblemSolver ();
 
         static ProblemSolverPtr_t create ();
 
diff --git a/src/problem-solver.cc b/src/problem-solver.cc
index b15aedd098de5b0c4ecaf038e66e92e49be76e57..95be01f8c294eee02b522e8d4a08c0ca9932bc11 100644
--- a/src/problem-solver.cc
+++ b/src/problem-solver.cc
@@ -23,6 +23,7 @@
 #include <hpp/model/gripper.hh>
 
 #include <hpp/core/roadmap.hh>
+#include <hpp/core/discretized-collision-checking.hh>
 
 #include "hpp/manipulation/device.hh"
 #include "hpp/manipulation/handle.hh"
@@ -30,6 +31,7 @@
 #include "hpp/manipulation/manipulation-planner.hh"
 #include "hpp/manipulation/problem.hh"
 #include "hpp/manipulation/roadmap.hh"
+#include "hpp/manipulation/graph-path-validation.hh"
 
 namespace hpp {
   namespace manipulation {
@@ -38,6 +40,16 @@ namespace hpp {
       return robot.print (os);
     }
 
+    ProblemSolver::ProblemSolver () :
+      core::ProblemSolver (), robot_ (), problem_ (0x0), graspsMap_()
+    {
+      addPathPlannerType ("M-RRT", ManipulationPlanner::create);
+      addPathValidationType ("Graph-discretized",
+          GraphPathValidation::create <core::DiscretizedCollisionChecking>);
+      pathPlannerType ("M-RRT");
+      pathValidationType ("Graph-discretized", 0.05);
+    }
+
     ProblemSolverPtr_t ProblemSolver::create ()
     {
       return ProblemSolverPtr_t (new ProblemSolver ());