diff --git a/FemLib/FEMCondition.cpp b/FemLib/FEMCondition.cpp
index 80d5deec8bcefca51fbe5b4bb1f55d9e3c341bfa..5f5ec2a1f4169d91e17d30d381c3b7b9242fc747 100644
--- a/FemLib/FEMCondition.cpp
+++ b/FemLib/FEMCondition.cpp
@@ -8,7 +8,6 @@
 #include "ProcessInfo.h"
 
 #include "GEOObjects.h" //for SourceTerm
-#include "GridAdapter.h"
 
 FEMCondition::FEMCondition(const std::string &geometry_name, CondType t)
 	: _type(t), _geoName("[unspecified]"), _associated_geometry(geometry_name)
@@ -22,13 +21,13 @@ FEMCondition::FEMCondition(const std::string &geometry_name, CondType t)
 FEMCondition::FEMCondition(const std::string &geometry_name, FiniteElement::ProcessType pt,
 				FiniteElement::PrimaryVariable pv, GeoLib::GEOTYPE gt, const std::string &gn,
 				FiniteElement::DistributionType dt, CondType ct)
-	: ProcessInfo(pt, pv, NULL),  GeoInfo(gt, NULL), DistributionInfo(dt), _type(ct),
+	: ProcessInfo(pt, pv/*, NULL*/),  GeoInfo(gt, NULL), DistributionInfo(dt), _type(ct),
 	  _geoName(gn), _associated_geometry(geometry_name)
 {
 }
 
 FEMCondition::FEMCondition(const FEMCondition &cond, CondType t)
-	: ProcessInfo(cond.getProcessType(), cond.getProcessPrimaryVariable(), NULL),
+	: ProcessInfo(cond.getProcessType(), cond.getProcessPrimaryVariable()/*, NULL*/),
 	  GeoInfo(cond.getGeoType(), cond.getGeoObj()),
 	  DistributionInfo(cond.getProcessDistributionType()),
 	  _type(t),
diff --git a/FemLib/GeoInfo.cpp b/FemLib/GeoInfo.cpp
index 36aed22e8cc34cb98c63699d09eb8a8f1f057b66..2bb451eeb9c4d0fcd655602ff3304dc6f742c9d8 100644
--- a/FemLib/GeoInfo.cpp
+++ b/FemLib/GeoInfo.cpp
@@ -12,17 +12,17 @@
 #include "GeoInfo.h"
 
 GeoInfo::GeoInfo() :
-	_geo_type(GEOLIB::INVALID), _geo_obj(NULL)
+	_geo_type(GeoLib::INVALID), _geo_obj(NULL)
 {}
 
-GeoInfo::GeoInfo(GEOLIB::GEOTYPE geo_type, const GEOLIB::GeoObject* geo_obj) :
+GeoInfo::GeoInfo(GeoLib::GEOTYPE geo_type, const GeoLib::GeoObject* geo_obj) :
 	_geo_type(geo_type), _geo_obj(geo_obj)
 {}
 
 GeoInfo::~GeoInfo()
 {}
 
-GEOLIB::GEOTYPE GeoInfo::getGeoType () const
+GeoLib::GEOTYPE GeoInfo::getGeoType () const
 {
 	return _geo_type;
 }
@@ -31,32 +31,32 @@ std::string GeoInfo::getGeoTypeAsString () const
 {
 	switch (_geo_type)
 	{
-	case GEOLIB::POINT:
+	case GeoLib::POINT:
 		return "POINT";
-	case GEOLIB::POLYLINE:
+	case GeoLib::POLYLINE:
 		return "POLYLINE";
-	case GEOLIB::SURFACE:
+	case GeoLib::SURFACE:
 		return "SURFACE";
-	case GEOLIB::VOLUME:
+	case GeoLib::VOLUME:
 		return "VOLUME";
-	case GEOLIB::GEODOMAIN:
+	case GeoLib::GEODOMAIN:
 		return "DOMAIN";
 	default:
 		return "";
 	}
 }
 
-void GeoInfo::setGeoType (GEOLIB::GEOTYPE geo_type)
+void GeoInfo::setGeoType (GeoLib::GEOTYPE geo_type)
 {
 	_geo_type = geo_type;
 }
 
-const GEOLIB::GeoObject* GeoInfo::getGeoObj () const
+const GeoLib::GeoObject* GeoInfo::getGeoObj () const
 {
 	return _geo_obj;
 }
 
-void GeoInfo::setGeoObj (const GEOLIB::GeoObject* geo_obj)
+void GeoInfo::setGeoObj (const GeoLib::GeoObject* geo_obj)
 {
 	_geo_obj = geo_obj;
 }
diff --git a/FemLib/ProcessInfo.cpp b/FemLib/ProcessInfo.cpp
index e3a65521bb17f2fea6b1ac402bb0bbcffa3c0408..a8273da8077f0b71c97aa3f030c5a3da1ee47c00 100644
--- a/FemLib/ProcessInfo.cpp
+++ b/FemLib/ProcessInfo.cpp
@@ -5,15 +5,15 @@
  *      Author: TF
  */
 
-#include "rf_pcs.h"
+//#include "rf_pcs.h"
 #include <ProcessInfo.h>
 
 ProcessInfo::ProcessInfo() :
-	_pcs_type (FiniteElement::INVALID_PROCESS), _pcs_pv (FiniteElement::INVALID_PV), _pcs (NULL)
+	_pcs_type (FiniteElement::INVALID_PROCESS), _pcs_pv (FiniteElement::INVALID_PV)//, _pcs (NULL)
 {}
 
-ProcessInfo::ProcessInfo (FiniteElement::ProcessType pcs_type, FiniteElement::PrimaryVariable pcs_pv, CRFProcess* pcs) :
-	_pcs_type (pcs_type), _pcs_pv (pcs_pv), _pcs (pcs)
+ProcessInfo::ProcessInfo (FiniteElement::ProcessType pcs_type, FiniteElement::PrimaryVariable pcs_pv/*, CRFProcess* pcs*/) :
+	_pcs_type (pcs_type), _pcs_pv (pcs_pv)//, _pcs (pcs)
 {}
 
 void ProcessInfo::setProcessType (FiniteElement::ProcessType pcs_type)
@@ -25,12 +25,12 @@ void ProcessInfo::setProcessPrimaryVariable (FiniteElement::PrimaryVariable pcs_
 {
 	_pcs_pv = pcs_pv;
 }
-
+/*
 void ProcessInfo::setProcess (CRFProcess* pcs)
 {
 	_pcs = pcs;
 }
-
+*/
 FiniteElement::ProcessType ProcessInfo::getProcessType () const
 {
 	return _pcs_type;
@@ -40,11 +40,11 @@ FiniteElement::PrimaryVariable ProcessInfo::getProcessPrimaryVariable () const
 {
 	return _pcs_pv;
 }
-
+/*
 CRFProcess* ProcessInfo::getProcess () const
 {
 	return _pcs;
 }
-
+*/
 ProcessInfo::~ProcessInfo()
 {}
diff --git a/FemLib/ProcessInfo.h b/FemLib/ProcessInfo.h
index 7c915ae78c0778a536baa85b8969e3c3d3892c65..891129dcc0afa172822dde6cd6397808b42eb6a4 100644
--- a/FemLib/ProcessInfo.h
+++ b/FemLib/ProcessInfo.h
@@ -10,7 +10,7 @@
 
 // FEM
 #include "FEMEnums.h"
-class CRFProcess;
+//class CRFProcess;
 
 /**
  * \brief Class ProcessInfo stores the process type,
@@ -36,7 +36,7 @@ public:
 	 * @param pcs a pointer to the process
 	 * @return
 	 */
-	ProcessInfo (FiniteElement::ProcessType pcs_type, FiniteElement::PrimaryVariable pcs_pv, CRFProcess* pcs);
+	ProcessInfo (FiniteElement::ProcessType pcs_type, FiniteElement::PrimaryVariable pcs_pv/*, CRFProcess* pcs*/);
 
 	/**
 	 * Sets the process type.
@@ -54,7 +54,7 @@ public:
 	 * Sets the value for the pointer to an object of class CRFProcess.
 	 * @param pcs the pointer to an object of class CRFProcess
 	 */
-	void setProcess (CRFProcess* pcs);
+	//void setProcess (CRFProcess* pcs);
 
 	/**
 	 * Get the process type.
@@ -72,7 +72,7 @@ public:
 	 * Get a pointer to an object of type CRFProcess.
 	 * @return a pointer to an object of type CRFProcess
 	 */
-	CRFProcess* getProcess () const;
+	//CRFProcess* getProcess () const;
 
 	virtual ~ProcessInfo();
 
@@ -89,6 +89,6 @@ protected:
 	/**
 	 * pointer to the object of class CRFProcess
 	 */
-	CRFProcess* _pcs;
+	//CRFProcess* _pcs;
 };
 #endif                                            /* PROCESSINFO_H_ */
diff --git a/GeoLib/GEOObjects.cpp b/GeoLib/GEOObjects.cpp
index 866172c27aa978fd0e2f7b0c8ba574925d556bac..d58196ac70c676de22fb945970986ea0b03d16d0 100644
--- a/GeoLib/GEOObjects.cpp
+++ b/GeoLib/GEOObjects.cpp
@@ -35,7 +35,7 @@ void GEOObjects::addPointVec(std::vector<Point*>* points,
                              double eps)
 {
 	isUniquePointVecName(name);
-	_pnt_vecs.push_back(new PointVec(name, points, pnt_id_name_map, PointVec::POINT, eps));
+	_pnt_vecs.push_back(new PointVec(name, points, pnt_id_name_map, PointVec::POINT/*, eps*/));
 }
 
 bool GEOObjects::appendPointVec(std::vector<Point*> const& new_points,
diff --git a/OGS/CMakeLists.txt b/OGS/CMakeLists.txt
index cf0b709196d4b670ada0e955b104c7f9cd3c0e6b..caf87116db89770089005268e2ca023e360047d8 100644
--- a/OGS/CMakeLists.txt
+++ b/OGS/CMakeLists.txt
@@ -10,6 +10,7 @@ include_directories(
 	${CMAKE_SOURCE_DIR}/BaseLib
 	${CMAKE_SOURCE_DIR}/FemLib
 	${CMAKE_SOURCE_DIR}/GeoLib
+	${CMAKE_SOURCE_DIR}/MathLib
 	${CMAKE_SOURCE_DIR}/MeshLib
 )
 
diff --git a/OGS/ProjectData.cpp b/OGS/ProjectData.cpp
index 7eb5d58c016eebce031ab368061e196bd4c073bf..4cd68b19acc94ce1892bd55b2907029b20e304a7 100644
--- a/OGS/ProjectData.cpp
+++ b/OGS/ProjectData.cpp
@@ -13,7 +13,7 @@ ProjectData::ProjectData()
 ProjectData::~ProjectData()
 {
 	delete _geoObjects;
-	for (std::map<std::string, MeshLib::CFEMesh*>::iterator it = _msh_vec.begin();
+	for (std::map<std::string, MeshLib::Mesh*>::iterator it = _msh_vec.begin();
 	     it != _msh_vec.end(); ++it)
 		delete it->second;
 	size_t nCond (_cond_vec.size());
@@ -21,13 +21,13 @@ ProjectData::~ProjectData()
 		delete _cond_vec[i];
 }
 
-void ProjectData::addMesh(MeshLib::CFEMesh* mesh, std::string &name)
+void ProjectData::addMesh(MeshLib::Mesh* mesh, std::string &name)
 {
 	isUniqueMeshName(name);
 	_msh_vec[name] = mesh;
 }
 
-const MeshLib::CFEMesh* ProjectData::getMesh(const std::string &name) const
+const MeshLib::Mesh* ProjectData::getMesh(const std::string &name) const
 {
 	return _msh_vec.find(name)->second;
 }
@@ -192,7 +192,7 @@ bool ProjectData::isUniqueMeshName(std::string &name)
 		if (count > 1)
 			cpName = cpName + "-" + number2str(count);
 
-		for (std::map<std::string, MeshLib::CFEMesh*>::iterator it = _msh_vec.begin();
+		for (std::map<std::string, MeshLib::Mesh*>::iterator it = _msh_vec.begin();
 		     it != _msh_vec.end(); ++it)
 			if ( cpName.compare(it->first) == 0 )
 				isUnique = false;