diff --git a/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/Evaluator.h b/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/Evaluator.h
index 6578a1dbca68051d49578b2c2ae79c55cc722564..a1b75a8f109c9e34532541e79c91b40a0a2e16d1 100755
--- a/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/Evaluator.h
+++ b/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/Evaluator.h
@@ -6,24 +6,11 @@
 #define HEP_EVALUATOR_H
 
 #include <string>
+
 #include "ExpressionEvaluator/IEvaluator.h"
 
-// namespace HepTool {
+namespace GeoModelTools {
 
-/**
- * Evaluator of arithmetic expressions with an extendable dictionary.
- * Example:
- * @code
- *   #include "CLHEP/Evaluator/Evaluator.h"
- *   HepTool::Evaluator eval;
- *   eval.setStdMath();
- *   double res = eval.evaluate("sin(30*degree)");
- *   if (eval.status() != HepTool::Evaluator::OK) eval.print_error();
- * @endcode
- *
- * @author Evgeni Chernyaev <Evgueni.Tcherniaev@cern.ch>
- * @ingroup evaluator
- */
 class Evaluator: public IEvaluator {
  public: 
 
@@ -260,6 +247,6 @@ private:
   // Evaluator & operator=(const Evaluator &); // assignment is not allowed
 };
 
-//  } // namespace HepTool
+}
 
 #endif /* HEP_EVALUATOR_H */
diff --git a/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/ExpressionEvaluator.h b/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/ExpressionEvaluator.h
index 00cef79deebcda85bb3a6bccdde086644e4fb550..f57dea50b702c9e08cf9d00959011eba47404e21 100644
--- a/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/ExpressionEvaluator.h
+++ b/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/ExpressionEvaluator.h
@@ -7,12 +7,14 @@
 #ifndef EXPRESSION_EVALUATOR_H
 #define EXPRESSION_EVALUATOR_H 1
 
-#include "ExpressionEvaluator/ExprtkEvaluator.h"
-
 #include <string>
 #include <vector>
 #include <map>
 
+#include "ExpressionEvaluator/ExprtkEvaluator.h"
+
+namespace GeoModelTools {
+
 class ExpressionEvaluator
 {
 public:
@@ -39,4 +41,6 @@ private:
   void replace_substring(std::string& , const std::string , const std::string );
 };
 
+}
+
 #endif // GDML_EXPRESSION_EVALUATOR_H
diff --git a/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/ExprtkEvaluator.h b/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/ExprtkEvaluator.h
index cfb5980835301c3751f905a3ea319af74eecab73..709ab972dbae594d64770d1049c6c91e3de53b66 100755
--- a/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/ExprtkEvaluator.h
+++ b/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/ExprtkEvaluator.h
@@ -21,6 +21,9 @@ typedef exprtk::parser<T>             parser_t;
 typedef std::map<std::string,std::vector<double> > vectorMap;
 typedef std::map<std::string,double> variableMap;
 
+
+namespace GeoModelTools { 
+
 /*
  Evaluator based on exprtk (see https://www.partow.net/programming/exprtk/index.html)
 */
@@ -41,7 +44,7 @@ public:
 
   double evaluate(const char * expression);
 
-  int status() const;
+int status() const;
 
   int error_position() const;
 
@@ -100,5 +103,6 @@ private:
 
 };
 
+}
 
 #endif
diff --git a/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/IEvaluator.h b/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/IEvaluator.h
index 82ed3b78a2a66682dc9b9c715f92638add19c718..4c2a867694561c4089ac0496e2572609d0aaa10d 100755
--- a/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/IEvaluator.h
+++ b/GeoModelTools/ExpressionEvaluator/ExpressionEvaluator/IEvaluator.h
@@ -7,6 +7,7 @@
 
 #include <string>
 
+namespace GeoModelTools {
 
 /**
  * IEvaluator: base class for Evaluator
@@ -14,6 +15,11 @@
 class IEvaluator {
  public: 
 
+  enum {
+    OK,                         /**< Everything OK */
+    ERROR
+  };
+
   IEvaluator() {;}
 
   /**
@@ -75,4 +81,6 @@ private:
   // IEvaluator & operator=(const IEvaluator &); // assignment is not allowed
 };
 
+}
+
 #endif /* HEP_EVALUATOR_H */
diff --git a/GeoModelTools/ExpressionEvaluator/src/Evaluator.cxx b/GeoModelTools/ExpressionEvaluator/src/Evaluator.cxx
index 9e3145d161b343578d495e102a3559c1e058a163..e27a0418e31bab263feb22ae0e44e112c4661e39 100755
--- a/GeoModelTools/ExpressionEvaluator/src/Evaluator.cxx
+++ b/GeoModelTools/ExpressionEvaluator/src/Evaluator.cxx
@@ -16,6 +16,8 @@
 #include <errno.h>
 #include <stdlib.h>	// for strtod()
 
+using namespace GeoModelTools;
+
 //---------------------------------------------------------------------------
 // Fix non ISO C++ compliant cast from pointer to function
 // to void*, which is a pointer to an object
diff --git a/GeoModelTools/ExpressionEvaluator/src/ExpressionEvaluator.cxx b/GeoModelTools/ExpressionEvaluator/src/ExpressionEvaluator.cxx
index 2ad4a65167858827880f39cf56565e6c1e721e85..63c4489f1115568c0cffe14bc518155b5e2db4f3 100644
--- a/GeoModelTools/ExpressionEvaluator/src/ExpressionEvaluator.cxx
+++ b/GeoModelTools/ExpressionEvaluator/src/ExpressionEvaluator.cxx
@@ -10,6 +10,8 @@
 #include <vector>
 #include <iostream>
 
+using namespace GeoModelTools;
+
 ExpressionEvaluator::ExpressionEvaluator()
 {
   m_calc.clear();
diff --git a/GeoModelTools/ExpressionEvaluator/src/ExprtkEvaluator.cxx b/GeoModelTools/ExpressionEvaluator/src/ExprtkEvaluator.cxx
index c28044b6224cba3007bbf6e38ffba70409c99adb..324dd3373aca156b0fea5839fa81b3fb02854577 100755
--- a/GeoModelTools/ExpressionEvaluator/src/ExprtkEvaluator.cxx
+++ b/GeoModelTools/ExpressionEvaluator/src/ExprtkEvaluator.cxx
@@ -4,6 +4,8 @@
 
 #include <iostream>
 
+using namespace GeoModelTools;
+
 ExprtkEvaluator::ExprtkEvaluator()
 {
   //  std::cout<<" ########### new ExprtkEvaluator being created "<<std::endl;
diff --git a/GeoModelTools/ExpressionEvaluator/src/setStdMath.cxx b/GeoModelTools/ExpressionEvaluator/src/setStdMath.cxx
index 79d1a6655d272492e25bd6f3b42c2928d8b9a6b4..7726eb408ff43f1067696ea57efef38aa92395e1 100755
--- a/GeoModelTools/ExpressionEvaluator/src/setStdMath.cxx
+++ b/GeoModelTools/ExpressionEvaluator/src/setStdMath.cxx
@@ -28,7 +28,7 @@ static double eval_log10(double a)           { return std::log10(a); }
 
 //namespace HepTool {
 
-void Evaluator::setStdMath() {
+void GeoModelTools::Evaluator::setStdMath() {
 
   //   S E T   S T A N D A R D   C O N S T A N T S
 
diff --git a/GeoModelTools/ExpressionEvaluator/src/setSystemOfUnits.cxx b/GeoModelTools/ExpressionEvaluator/src/setSystemOfUnits.cxx
index adc7e33e40e05b4ede00ca9301168230305d37c3..8b25e8b75395b7210d7b47f93df1b11a3653f235 100644
--- a/GeoModelTools/ExpressionEvaluator/src/setSystemOfUnits.cxx
+++ b/GeoModelTools/ExpressionEvaluator/src/setSystemOfUnits.cxx
@@ -7,7 +7,7 @@
 
 //  namespace HepTool {
 
-void IEvaluator::setSystemOfUnits(double meter,
+void GeoModelTools::IEvaluator::setSystemOfUnits(double meter,
 				 double kilogram,
 				 double second,
 				 double ampere,
diff --git a/GeoModelTools/GDMLtoGM/GDMLInterface/GDMLController.h b/GeoModelTools/GDMLtoGM/GDMLInterface/GDMLController.h
index 4d3d265775a02e63ff50141027b6735f13e95645..e2a707e59f67d688fadb495963d925932455ab75 100644
--- a/GeoModelTools/GDMLtoGM/GDMLInterface/GDMLController.h
+++ b/GeoModelTools/GDMLtoGM/GDMLInterface/GDMLController.h
@@ -34,7 +34,7 @@ typedef std::map<std::string, GeoElement*, std::less<std::string> > elementStore
 class GDMLController {
 public:
 	GDMLController(std::string);
-	ExpressionEvaluator* Evaluator();
+	GeoModelTools::ExpressionEvaluator* Evaluator();
 	GeoModelTools::XMLHandlerStore* XMLStore();
 
 	void saveIsotope(std::string, isotope);
@@ -71,7 +71,7 @@ protected:
 	void setConstant(const char*, double);
 
 	std::string controllerName;
-	ExpressionEvaluator* theEvaluator;
+	GeoModelTools::ExpressionEvaluator* theEvaluator;
 	GeoModelTools::XMLHandlerStore* theXMLStore;
 
 	isotopeStore theIsotopes;
diff --git a/GeoModelTools/GDMLtoGM/src/GDMLController.cxx b/GeoModelTools/GDMLtoGM/src/GDMLController.cxx
index 92b9bfe3e642e49ca76e94815da1d4ac7d17ba7c..914cb4ab8257c86981259ccd1a739c899f7c7cac 100644
--- a/GeoModelTools/GDMLtoGM/src/GDMLController.cxx
+++ b/GeoModelTools/GDMLtoGM/src/GDMLController.cxx
@@ -24,12 +24,12 @@ std::string stripPointer(const std::string str)
 
 GDMLController::GDMLController(std::string name): controllerName(name) {
 	theXMLStore=GeoModelTools::XMLHandlerStore::GetHandlerStore();
-	theEvaluator=ExpressionEvaluator::GetEvaluator();
+	theEvaluator=GeoModelTools::ExpressionEvaluator::GetEvaluator();
 
 	registerHandlers();
 }
 
-ExpressionEvaluator* GDMLController::Evaluator()
+GeoModelTools::ExpressionEvaluator* GDMLController::Evaluator()
 {
 	return theEvaluator;
 }
diff --git a/GeoModelTools/GDMLtoGM/src/constantHandler.cxx b/GeoModelTools/GDMLtoGM/src/constantHandler.cxx
index 24eca07545a8ee736a2bd7b4c8d2729685540f17..1a69afd6bddfcfbb423baa3eaf39d7f9e2102041 100644
--- a/GeoModelTools/GDMLtoGM/src/constantHandler.cxx
+++ b/GeoModelTools/GDMLtoGM/src/constantHandler.cxx
@@ -22,5 +22,5 @@ void constantHandler::ElementHandle()
 		std::cout<<" Warning, <quantity /> tag requires an unit attribute to be defined!!!!"<<std::endl;
 	std::string type=getAttributeAsString("type","density");
   }
-  ExpressionEvaluator::GetEvaluator()->RegisterConstant(name,value*lunit);
+  GeoModelTools::ExpressionEvaluator::GetEvaluator()->RegisterConstant(name,value*lunit);
 }
diff --git a/GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/Gmx2Geo.h b/GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/Gmx2Geo.h
index 2ea56c3318b0356a2dff1e9fd9de20a3b31ed83d..02a66de20dfa5cabf34980102dc8c77484775bf8 100644
--- a/GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/Gmx2Geo.h
+++ b/GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/Gmx2Geo.h
@@ -52,7 +52,7 @@ XERCES_CPP_NAMESPACE_BEGIN
 class DOMNode;
 XERCES_CPP_NAMESPACE_END
 
-class Evaluator;
+class IEvaluator;
 
 #define processorList std::map<std::string,ElementProcessor*> 
 
@@ -64,7 +64,7 @@ private:
     Gmx2Geo(const Gmx2Geo &right);
     Gmx2Geo & operator=(const Gmx2Geo &right);
 
-    int doDefines(xercesc::DOMDocument *doc, Evaluator &eval);
+    int doDefines(xercesc::DOMDocument *doc, GeoModelTools::IEvaluator &eval);
     int doPositionIndex(xercesc::DOMDocument *doc, GmxUtil &gmxUtil);
     int doReadoutGeometry(xercesc::DOMDocument *doc, GmxUtil &gmxUtil);
     void addParam(xercesc::DOMNode *node, std::map<std::string, std::string> &params);
diff --git a/GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/GmxUtil.h b/GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/GmxUtil.h
index a82983d4c7726f5dd2c368212cfa51c8bbb55b6f..b27cc1619d7e54c576dbba6e6e73b935e9d3b9c0 100644
--- a/GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/GmxUtil.h
+++ b/GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/GmxUtil.h
@@ -66,7 +66,7 @@ public:
     GmxInterface *gmxInterface();
     double evaluate(char const *expression);
     std::string debracket(std::string expression);
-    Evaluator eval;
+    GeoModelTools::Evaluator eval;
     PositionIndex positionIndex;
     MaterialManager* matManager=0;
     ProcessorRegistry processorRegistry;
diff --git a/GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/PositionIndex.h b/GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/PositionIndex.h
index 31a722b30cc44dfbe4ff55bd13ff113f6687851c..e6fcf4e028ff8ec000ee458abbff7eb123678fad 100644
--- a/GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/PositionIndex.h
+++ b/GeoModelTools/GeoModelXML/GeoModelXml/GeoModelXml/PositionIndex.h
@@ -20,7 +20,7 @@
 #include <map>
 #include <string>
 
-class Evaluator;
+class IEvaluator;
 
 class PositionIndex {
 public:
@@ -39,7 +39,7 @@ public:
     std::string formula(const std::string& name);
     void setFormula(const std::string& name, const std::string& formula);
 
-    void indices(std::map<std::string, int> &index, Evaluator &eval);
+    void indices(std::map<std::string, int> &index, GeoModelTools::IEvaluator &eval);
 
 private:
     int m_level;
diff --git a/GeoModelTools/GeoModelXML/GeoModelXml/src/Gmx2Geo.cxx b/GeoModelTools/GeoModelXML/GeoModelXml/src/Gmx2Geo.cxx
index b7e5c7fcbb8101badf1e44ae12a313decbc6bb70..a674ffc52c78fcded174ba1c4f2e7fde9c2da4de 100644
--- a/GeoModelTools/GeoModelXML/GeoModelXml/src/Gmx2Geo.cxx
+++ b/GeoModelTools/GeoModelXML/GeoModelXml/src/Gmx2Geo.cxx
@@ -17,7 +17,7 @@
 
 #include "GeoModelKernel/GeoPhysVol.h"
 
-#include "ExpressionEvaluator/Evaluator.h"
+#include "ExpressionEvaluator/IEvaluator.h"
 
 #include "xercesc/util/XMLString.hpp"
 #include "GeoModelXml/GeoNodeList.h"
@@ -111,7 +111,7 @@ Gmx2Geo::Gmx2Geo(const string& xmlFile, GeoPhysVol *addHere, GmxInterface &gmxIn
     XMLPlatformUtils::Terminate();
 }
 
-int Gmx2Geo::doDefines(DOMDocument *doc, Evaluator &eval) {
+int Gmx2Geo::doDefines(DOMDocument *doc, GeoModelTools::IEvaluator &eval) {
 //
 //    Add all defines to the CLHEP::Evaluator
 //
@@ -214,7 +214,7 @@ const DOMElement *element;
             char *name = XMLString::transcode(var->getAttribute(name_tmp));
             char *val = XMLString::transcode(var->getAttribute(value_tmp));
             double evaluated = eval.evaluate(val);
-            if (eval.status() != Evaluator::OK) {
+            if (eval.status() != GeoModelTools::IEvaluator::OK) {
                 msglog << MSG::FATAL << "GeoModelXml Error processing CLHEP Evaluator expression. Error name " <<
                 eval.error_name() << endl << "Message: ";
                 eval.print_error();
diff --git a/GeoModelTools/GeoModelXML/GeoModelXml/src/GmxUtil.cxx b/GeoModelTools/GeoModelXML/GeoModelXml/src/GmxUtil.cxx
index 6b9b86a757af5df3e91c88cf08220d1cf414d448..6ca7f8a6bb39028608701d1eba33525746c8c95c 100644
--- a/GeoModelTools/GeoModelXML/GeoModelXml/src/GmxUtil.cxx
+++ b/GeoModelTools/GeoModelXML/GeoModelXml/src/GmxUtil.cxx
@@ -105,7 +105,7 @@ double GmxUtil::evaluate(char const *expression) {
 //   And evaluate the result
 //
     double result = eval.evaluate(noBrackets.c_str());
-    if (eval.status() != Evaluator::OK) {
+    if (eval.status() != GeoModelTools::Evaluator::OK) {
         throw runtime_error(string("evaluate: invalid expression. Last good expression was <" + lastGoodExpression + ">"));
     }
     lastGoodExpression = strExpression;
diff --git a/GeoModelTools/GeoModelXML/GeoModelXml/src/PositionIndex.cxx b/GeoModelTools/GeoModelXML/GeoModelXml/src/PositionIndex.cxx
index c1833bb35b9e79483b7afb85d230540c829ed1f2..486a8322d56d92fe109111e9c4306ec5a2ec5aa0 100644
--- a/GeoModelTools/GeoModelXML/GeoModelXml/src/PositionIndex.cxx
+++ b/GeoModelTools/GeoModelXML/GeoModelXml/src/PositionIndex.cxx
@@ -6,7 +6,7 @@
 #include "OutputDirector.h"
 #include <vector>
 #include <string>
-#include "ExpressionEvaluator/Evaluator.h"
+#include "ExpressionEvaluator/IEvaluator.h"
 #include "GeoModelXml/PositionIndex.h"
 
 using namespace std;
@@ -68,7 +68,7 @@ void PositionIndex::setFormula(const std::string& name, const std::string& formu
     m_formula[name] = formula;
 }
 
-void PositionIndex::indices(map<string, int> &index, Evaluator &eval) {
+void PositionIndex::indices(map<string, int> &index, GeoModelTools::IEvaluator &eval) {
     index.clear(); // In case caller uses it many times
 //
 //    Set Copy Number of each Level (CNL_i) up to current level
@@ -97,7 +97,7 @@ void PositionIndex::indices(map<string, int> &index, Evaluator &eval) {
     for (vector <string>::iterator n = m_name.begin(); n < m_name.end(); ++n) {
         string name = *n;
         index[name] = (int) eval.evaluate(m_formula[name].c_str());
-        if (eval.status() != Evaluator::OK) {
+        if (eval.status() != GeoModelTools::IEvaluator::OK) {
             msglog << MSG::FATAL <<
                    "GeoModelXml Error processing Evaluator expression for PositionIndex. Error name " <<
                     eval.error_name() << endl << "Message: ";