diff --git a/Gui/DataView/CMakeLists.txt b/Gui/DataView/CMakeLists.txt
index 661fc1fff5528694a73bd868a4028c2caa75b075..21a66b87756a4b3c9e3f9d0845b7a0ebbfc52dc6 100644
--- a/Gui/DataView/CMakeLists.txt
+++ b/Gui/DataView/CMakeLists.txt
@@ -28,7 +28,6 @@ set( SOURCES
 	ModelTreeItem.cpp
 	MeshLayerEditDialog.cpp
 	MshItem.cpp
-	MshLayerMapper.cpp
 	MshModel.cpp
 	MshQualitySelectionDialog.cpp
 	MshTabWidget.cpp
@@ -98,7 +97,6 @@ set( HEADERS
 	GeoTreeItem.h
 	ModelTreeItem.h
 	MshItem.h
-	MshLayerMapper.h
 	ProcessItem.h
 )
 
diff --git a/Gui/DataView/MeshLayerEditDialog.cpp b/Gui/DataView/MeshLayerEditDialog.cpp
index de04e6a04533e114942ed8f93f21878669512f50..5692a07ce325ae833b948273d37df2874fcb4cab 100644
--- a/Gui/DataView/MeshLayerEditDialog.cpp
+++ b/Gui/DataView/MeshLayerEditDialog.cpp
@@ -192,7 +192,7 @@ void MeshLayerEditDialog::accept()
 				const std::string imgPath ( this->_edits[0]->text().toStdString() );
 				const double noDataReplacementValue = this->_noDataReplacementEdit->text().toDouble();
 				if (!imgPath.empty())
-					result = MshLayerMapper::LayerMapping(*new_mesh, imgPath, nLayers, 0, noDataReplacementValue);
+					result = MeshLayerMapper::LayerMapping(*new_mesh, imgPath, nLayers, 0, noDataReplacementValue);
 			}
 			else
 			{
@@ -205,7 +205,7 @@ void MeshLayerEditDialog::accept()
 					layer_thickness.push_back(thickness);
 				}
 
-				new_mesh = MshLayerMapper::CreateLayers(*_msh, layer_thickness);
+				new_mesh = MeshLayerMapper::CreateLayers(*_msh, layer_thickness);
 
 				if (_use_rasters)
 				{
@@ -215,13 +215,13 @@ void MeshLayerEditDialog::accept()
 						const double noDataReplacement = (i==0) ? 0.0 : -9999.0;
 						if (!imgPath.empty())
 						{
-							result = MshLayerMapper::LayerMapping(*new_mesh, imgPath, nLayers, i, noDataReplacement);
+							result = MeshLayerMapper::LayerMapping(*new_mesh, imgPath, nLayers, i, noDataReplacement);
 							if (result==0) break;
 						}
 					}
 					if (this->_edits[0]->text().length()>0)
 					{
-						MeshLib::Mesh* final_mesh = MshLayerMapper::blendLayersWithSurface(*new_mesh, nLayers, this->_edits[0]->text().toStdString());
+						MeshLib::Mesh* final_mesh = MeshLayerMapper::blendLayersWithSurface(*new_mesh, nLayers, this->_edits[0]->text().toStdString());
 						delete new_mesh;
 						new_mesh = final_mesh;
 					}
diff --git a/Gui/DataView/MeshLayerEditDialog.h b/Gui/DataView/MeshLayerEditDialog.h
index 1b02632fb182eced09000282a8ec44f8d92e767e..89fabac92366e00ed6a5e243e4f2f92d362ffa1c 100644
--- a/Gui/DataView/MeshLayerEditDialog.h
+++ b/Gui/DataView/MeshLayerEditDialog.h
@@ -18,7 +18,7 @@
 #include "ui_MeshLayerEdit.h"
 #include <QDialog>
 
-#include "MshLayerMapper.h"
+#include "MeshGenerators/MeshLayerMapper.h"
 
 class QPushButton;
 class QCheckBox;
diff --git a/Gui/DataView/MshLayerMapper.cpp b/MeshLib/MeshGenerators/MeshLayerMapper.cpp
similarity index 95%
rename from Gui/DataView/MshLayerMapper.cpp
rename to MeshLib/MeshGenerators/MeshLayerMapper.cpp
index 97d27eea1cec4f835139c106ebdb57783dbc752a..6fb51ea0e309567a561ba43031311024144b2086 100644
--- a/Gui/DataView/MshLayerMapper.cpp
+++ b/MeshLib/MeshGenerators/MeshLayerMapper.cpp
@@ -1,8 +1,8 @@
 /**
- * \file
+ * \file   MeshLayerMapper.cpp
  * \author Karsten Rink
  * \date   2010-11-01
- * \brief  Implementation of the MshLayerMapper class.
+ * \brief  Implementation of the MeshLayerMapper class.
  *
  * \copyright
  * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
@@ -18,7 +18,7 @@
 // ThirdParty/logog
 #include "logog/include/logog.hpp"
 
-#include "MshLayerMapper.h"
+#include "MeshLayerMapper.h"
 // GeoLib
 #include "Raster.h"
 
@@ -33,7 +33,7 @@
 #include "MathTools.h"
 
 
-MeshLib::Mesh* MshLayerMapper::CreateLayers(const MeshLib::Mesh &mesh, const std::vector<float> &layer_thickness_vector)
+MeshLib::Mesh* MeshLayerMapper::CreateLayers(const MeshLib::Mesh &mesh, const std::vector<float> &layer_thickness_vector)
 {
 	std::vector<float> thickness;
 	for (std::size_t i=0; i<layer_thickness_vector.size(); ++i)
@@ -110,7 +110,7 @@ MeshLib::Mesh* MshLayerMapper::CreateLayers(const MeshLib::Mesh &mesh, const std
 	return new MeshLib::Mesh("SubsurfaceMesh", new_nodes, new_elems);
 }
 
-int MshLayerMapper::LayerMapping(MeshLib::Mesh &new_mesh, const std::string &rasterfile,
+int MeshLayerMapper::LayerMapping(MeshLib::Mesh &new_mesh, const std::string &rasterfile,
                                  const unsigned nLayers, const unsigned layer_id, double noDataReplacementValue = 0.0)
 {
 	if (nLayers < layer_id)
@@ -208,7 +208,7 @@ int MshLayerMapper::LayerMapping(MeshLib::Mesh &new_mesh, const std::string &ras
 	return 1;
 }
 
-bool MshLayerMapper::isNodeOnRaster(const MeshLib::Node &node,
+bool MeshLayerMapper::isNodeOnRaster(const MeshLib::Node &node,
                                     const std::pair<double, double> &xDim,
                                     const std::pair<double, double> &yDim)
 {
@@ -218,12 +218,12 @@ bool MshLayerMapper::isNodeOnRaster(const MeshLib::Node &node,
 	return true;
 }
 
-MeshLib::Mesh* MshLayerMapper::blendLayersWithSurface(MeshLib::Mesh &mesh, const unsigned nLayers, const std::string &dem_raster)
+MeshLib::Mesh* MeshLayerMapper::blendLayersWithSurface(MeshLib::Mesh &mesh, const unsigned nLayers, const std::string &dem_raster)
 {
 	// construct surface mesh from DEM
 	const MathLib::Vector3 dir(0,0,1);
 	MeshLib::Mesh* dem = MeshLib::MeshSurfaceExtraction::getMeshSurface(mesh, dir);
-	MshLayerMapper::LayerMapping(*dem, dem_raster, 0, 0);
+	MeshLayerMapper::LayerMapping(*dem, dem_raster, 0, 0);
 	const std::vector<MeshLib::Node*> &dem_nodes (dem->getNodes());
 
 	const std::vector<MeshLib::Node*> &mdl_nodes (mesh.getNodes());
diff --git a/Gui/DataView/MshLayerMapper.h b/MeshLib/MeshGenerators/MeshLayerMapper.h
similarity index 91%
rename from Gui/DataView/MshLayerMapper.h
rename to MeshLib/MeshGenerators/MeshLayerMapper.h
index 1db16f93e46f827679b32e36bf1b55edfd84f412..bcbd9a7da94e38a561fa583aec776ed439c7115d 100644
--- a/Gui/DataView/MshLayerMapper.h
+++ b/MeshLib/MeshGenerators/MeshLayerMapper.h
@@ -1,8 +1,8 @@
 /**
- * \file
+ * \file   MeshLayerMapper.h
  * \author Karsten Rink
  * \date   2010-11-01
- * \brief  Definition of the MshLayerMapper class.
+ * \brief  Definition of the MeshLayerMapper class.
  *
  * \copyright
  * Copyright (c) 2013, OpenGeoSys Community (http://www.opengeosys.org)
@@ -12,8 +12,8 @@
  *
  */
 
-#ifndef MSHLAYERMAPPER_H
-#define MSHLAYERMAPPER_H
+#ifndef MESHLAYERMAPPER_H
+#define MESHLAYERMAPPER_H
 
 #include <string>
 
@@ -27,11 +27,11 @@ namespace MeshLib {
 /**
  * \brief Manipulating and adding layers to an existing mesh
  */
-class MshLayerMapper
+class MeshLayerMapper
 {
 public:
-	MshLayerMapper() {}
-	~MshLayerMapper() {}
+	MeshLayerMapper() {}
+	~MeshLayerMapper() {}
 
 	/**
 	 * Based on a triangle-or quad mesh this method creates a 3D mesh with with a given number of prism- or hex-layers
@@ -64,4 +64,4 @@ private:
 	                           const std::pair<double, double> &yDim);
 };
 
-#endif //MSHLAYERMAPPER_H
+#endif //MESHLAYERMAPPER_H
diff --git a/MeshLib/Node.h b/MeshLib/Node.h
index 6679a2e69ef8f8fd9e1eb864c5c1061dc1ab9d0a..82980e1035e4e311b804dfd603dcbfd5641e545c 100644
--- a/MeshLib/Node.h
+++ b/MeshLib/Node.h
@@ -24,9 +24,7 @@
 #include "Mesh.h"
 #include "MeshEditing/removeMeshNodes.h"
 #include "MeshSurfaceExtraction.h"
-#ifdef OGS_BUILD_GUI
-	#include "../Gui/DataView/MshLayerMapper.h"
-#endif
+#include "MeshGenerators/MeshLayerMapper.h"
 
 namespace MeshLib {
 
@@ -39,9 +37,9 @@ class Node : public GeoLib::PointWithID
 {
 	/* friend functions: */
 #ifdef OGS_BUILD_GUI
-	friend int MshLayerMapper::LayerMapping(MeshLib::Mesh &mesh, const std::string &rasterfile, const unsigned nLayers,
+	friend int MeshLayerMapper::LayerMapping(MeshLib::Mesh &mesh, const std::string &rasterfile, const unsigned nLayers,
 		                                    const unsigned layer_id, double noDataReplacementValue);
-	friend MeshLib::Mesh* MshLayerMapper::blendLayersWithSurface(MeshLib::Mesh &mesh, const unsigned nLayers, const std::string &dem_raster);
+	friend MeshLib::Mesh* MeshLayerMapper::blendLayersWithSurface(MeshLib::Mesh &mesh, const unsigned nLayers, const std::string &dem_raster);
 #endif
 	/* friend classes: */
 	friend class Mesh;