diff --git a/Mesh/Levy3D.cpp b/Mesh/Levy3D.cpp
index 798eb686869554b8a88023ce1d2c403e90352220..5231b135b691ea5ec27d0ad12b9587a594533c05 100755
--- a/Mesh/Levy3D.cpp
+++ b/Mesh/Levy3D.cpp
@@ -1032,6 +1032,65 @@ void LpSmoother::improve_region(GRegion* gr){
   //regions.push_back(gr);
   //meshGRegion mesher(regions);
   //mesher(gr);
+	
+  delete octree;
+}
+
+/*********class Wrap*********/
+
+Wrap::Wrap(){
+  iteration = 0;
+  initial_energy = -1.0;
+}
+
+Wrap::~Wrap(){}
+
+int Wrap::get_p(){
+  return p;
+}
+
+int Wrap::get_dimension(){
+  return dimension;
+}
+
+int Wrap::get_iteration(){
+  return iteration;
+}
+
+int Wrap::get_max_iteration(){
+  return max_iteration;
+}
+
+double Wrap::get_initial_energy(){
+  return initial_energy;
+}
+
+MElementOctree* Wrap::get_octree(){
+  return octree;
+}
+
+void Wrap::set_p(int new_p){
+  p = new_p;
+}
+
+void Wrap::set_dimension(int new_dimension){
+  dimension = new_dimension;
+}
+
+void Wrap::set_iteration(int new_iteration){
+  iteration = new_iteration;
+}
+
+void Wrap::set_max_iteration(int new_max_iteration){
+  max_iteration = new_max_iteration;
+}
+
+void Wrap::set_initial_energy(double new_initial_energy){
+  initial_energy = new_initial_energy;
+}
+
+void Wrap::set_octree(MElementOctree* new_octree){
+  octree = new_octree;
 }
 
 /*********functions*********/
diff --git a/Mesh/Levy3D.h b/Mesh/Levy3D.h
index 012409b85b530abcad5757a50acb29facefcca6a..d9ff73e5f389eeeeaca2aa2a8cf403596aa2d981 100755
--- a/Mesh/Levy3D.h
+++ b/Mesh/Levy3D.h
@@ -48,9 +48,9 @@ class VoronoiVertex{
 /*********class Metric*********/
 
 class Metric{
- private :
+ private:
   double m11,m12,m13,m21,m22,m23,m31,m32,m33;
- public :
+ public:
   Metric();
   ~Metric();
   void set_m11(double);
@@ -153,6 +153,33 @@ class LpSmoother{
   void improve_region(GRegion*);
 };
 
+/*********class Wrap*********/
+
+class Wrap{
+ private:
+  int p;
+  int dimension;
+  int iteration;
+  int max_iteration;
+  double initial_energy;
+  MElementOctree* octree;
+ public:
+  Wrap();
+  ~Wrap();
+  int get_p();
+  int get_dimension();
+  int get_iteration();
+  int get_max_iteration();
+  double get_initial_energy();
+  MElementOctree* get_octree();
+  void set_p(int);
+  void set_dimension(int);
+  void set_iteration(int);
+  void set_max_iteration(int);
+  void set_initial_energy(double);
+  void set_octree(MElementOctree*);
+};
+
 /*********functions*********/
 
 bool inside_domain(MElementOctree*,double,double,double);