diff --git a/src/GridGenerator/geometries/TriangularMesh/TriangularMesh.cu b/src/GridGenerator/geometries/TriangularMesh/TriangularMesh.cu
index eba3c309f61e777af7b2758f3ced5a60602e8670..92a01db4e8781d355393e8d27233f780d18cea35 100644
--- a/src/GridGenerator/geometries/TriangularMesh/TriangularMesh.cu
+++ b/src/GridGenerator/geometries/TriangularMesh/TriangularMesh.cu
@@ -12,10 +12,9 @@
 #include "io/STLReaderWriter/STLWriter.h"
 
 
-TriangularMesh* TriangularMesh::make(const std::string& fileName, DiscretizationMethod discretizationMethod)
+TriangularMesh* TriangularMesh::make(const std::string& fileName)
 {
     TriangularMesh* triangularMesh = new TriangularMesh(fileName);
-    triangularMesh->discretizationMethod = discretizationMethod;
     return triangularMesh;
 }
 
@@ -110,11 +109,6 @@ HOST bool TriangularMesh::operator==(const TriangularMesh &geometry) const
 }
 
 
-HOST DiscretizationMethod TriangularMesh::getDiscretizationMethod() const
-{
-    return this->discretizationMethod;
-}
-
 HOSTDEVICE GbTriFaceMesh3D* TriangularMesh::getGbTriFaceMesh3D() const
 {
     std::vector<GbTriFaceMesh3D::Vertex> *gbVertices = new std::vector<GbTriFaceMesh3D::Vertex>(this->triangleVec.size() * 3);
diff --git a/src/GridGenerator/geometries/TriangularMesh/TriangularMesh.h b/src/GridGenerator/geometries/TriangularMesh/TriangularMesh.h
index 7c70411005f3442328a96c78e18103706d04b74f..c24602baa4203ae533d0039f0e0b5caa29c67e4e 100644
--- a/src/GridGenerator/geometries/TriangularMesh/TriangularMesh.h
+++ b/src/GridGenerator/geometries/TriangularMesh/TriangularMesh.h
@@ -25,7 +25,7 @@ class TriangularMesh : public Object
 {
 public:
 
-    VF_PUBLIC static TriangularMesh* make(const std::string& fileName, DiscretizationMethod discretizationMethod);
+    VF_PUBLIC static TriangularMesh* make(const std::string& fileName);
 	VF_PUBLIC TriangularMesh();
     VF_PUBLIC TriangularMesh(const std::string& inputPath);
 	VF_PUBLIC TriangularMesh(const std::string& inputPath, const BoundingBox &box);
@@ -46,7 +46,6 @@ public:
 
     VF_PUBLIC void findNeighbors();
 
-    HOST VF_PUBLIC DiscretizationMethod getDiscretizationMethod() const;
     HOSTDEVICE VF_PUBLIC GbTriFaceMesh3D* getGbTriFaceMesh3D() const;
 
 private:
@@ -56,8 +55,6 @@ private:
     static std::vector<Vertex> getAverrageNormalsPerVertex(std::vector<std::vector<Triangle> > trianglesPerVertex);
     static void eliminateTriangleswithIdenticialNormal(std::vector<Triangle> &triangles);
 
-    DiscretizationMethod discretizationMethod;
-
 public:
     HOSTDEVICE Object* clone() const override;
     double getX1Centroid() override { throw "Not implemented in TriangularMesh"; }
diff --git a/src/GridGenerator/grid/GridBuilder/MultipleGridBuilder.cpp b/src/GridGenerator/grid/GridBuilder/MultipleGridBuilder.cpp
index b7f67631f46c62831bb0f206bad690412979dc32..8cf446aac8246c524f0327f3d00dc29758ca26f0 100644
--- a/src/GridGenerator/grid/GridBuilder/MultipleGridBuilder.cpp
+++ b/src/GridGenerator/grid/GridBuilder/MultipleGridBuilder.cpp
@@ -5,6 +5,7 @@
 
 #include <VirtualFluidsBasics/utilities/logger/Logger.h>
 #include "io/STLReaderWriter/STLWriter.h"
+#include "io/GridVTKWriter/GridVTKWriter.h"
 
 MultipleGridBuilder::MultipleGridBuilder(SPtr<GridFactory> gridFactory, Device device, const std::string &d3qxx) :
     LevelGridBuilder(device, d3qxx), gridFactory(gridFactory)
@@ -272,3 +273,15 @@ void MultipleGridBuilder::emitGridIsNotInCoarseGridWarning()
 {
     *logging::out << logging::Logger::WARNING << "Grid lies not inside of coarse grid. Actual Grid is not added.\n";
 }
+
+void MultipleGridBuilder::writeGridsToVtk(const std::string& path) const
+{
+    for(uint level = 0; level < grids.size(); level++)
+    {
+        std::stringstream ss;
+        ss << path << level << ".vtk";
+
+        GridVTKWriter::writeGridToVTKXML(grids[level], ss.str());
+        GridVTKWriter::writeSparseGridToVTK(grids[level], ss.str());
+    }
+}
\ No newline at end of file
diff --git a/src/GridGenerator/grid/GridBuilder/MultipleGridBuilder.h b/src/GridGenerator/grid/GridBuilder/MultipleGridBuilder.h
index 44ecdea627cc366e29d66dae073d9192af3f1e07..58599214293586fcc06ebac5599b5e6e0f1e7da0 100644
--- a/src/GridGenerator/grid/GridBuilder/MultipleGridBuilder.h
+++ b/src/GridGenerator/grid/GridBuilder/MultipleGridBuilder.h
@@ -43,6 +43,8 @@ public:
     VF_PUBLIC std::vector<SPtr<Grid> > getGrids() const;
     VF_PUBLIC void buildGrids();
 
+    VF_PUBLIC void writeGridsToVtk(const std::string& path) const;
+
 private:
     void addGridToList(SPtr<Grid> grid);
     real calculateDelta(uint level) const;
diff --git a/targets/apps/HULC/main.cpp b/targets/apps/HULC/main.cpp
index ec4055100a81612516caddc2bc352377d1e7000d..36e0f3328ce7d690d9d361c8a0d5384ebaf536ba 100644
--- a/targets/apps/HULC/main.cpp
+++ b/targets/apps/HULC/main.cpp
@@ -249,7 +249,7 @@ void multipleLevel(const std::string& configPath)
     auto gridFactory = SPtr<GridFactory>(new GridFactory());
     gridFactory->setGridStrategy(SPtr<GridStrategy>(new GridCpuStrategy()));
     gridFactory->setGrid("grid");
-    gridFactory->setTriangularMeshDiscretizationMethod(TriangularMeshDiscretizationMethod::POINT_IN_OBJECT);
+    gridFactory->setTriangularMeshDiscretizationMethod(TriangularMeshDiscretizationMethod::RAYCASTING);
 
     //auto gridBuilderlevel = LevelGridBuilder::makeShared(Device::CPU, "D3Q27");
     auto gridBuilder = MultipleGridBuilder::makeShared(gridFactory);
@@ -259,13 +259,18 @@ void multipleLevel(const std::string& configPath)
     //conglomerate->subtract(new Sphere(30, 20, 20, 4));
     //gridBuilder->addGrid(conglomerate, 2);
 
+    //gridBuilder->addCoarseGrid(0, 0, 0, 40, 40, 40, 1.0);
+    //Object* cuboid = new Cuboid(15, 15, 15, 20, 20, 20);
+    //gridBuilder->addGrid(cuboid, 2);
 
 //    gridBuilder->addCoarseGrid(0.0, 0.0, 0.0, 14, 10, 20, 0.25);
     //TriangularMesh* triangularMesh = TriangularMesh::make("D:/GRIDGENERATION/STL/quadarBinaer.stl", DiscretizationMethod::POINT_IN_OBJECT);
 
 
     gridBuilder->addCoarseGrid(-12, -10, -10, 55, 24, 25, 0.5);
-    TriangularMesh* triangularMesh = TriangularMesh::make("D:/GRIDGENERATION/STL/input/local_input/bruecke.stl", DiscretizationMethod::RAYCASTING);
+    TriangularMesh* triangularMesh = TriangularMesh::make("D:/GRIDGENERATION/STL/input/local_input/bruecke.stl");
+    //gridBuilder->addGrid(triangularMesh, 2);
+    gridBuilder->addGeometry(triangularMesh);
 
 
     //TriangleOffsetSurfaceGeneration::createOffsetTriangularMesh(triangularMesh, 5);
@@ -276,8 +281,7 @@ void multipleLevel(const std::string& configPath)
     //STLWriter::writeSTL(sphere->triangleVec, "D:/GRIDGENERATION/STL/GTI2.stl", false);
 
     //gridBuilder->addGrid(new Sphere(20, 20, 20, 8));
-    //gridBuilder->addGrid(triangularMesh, 2);
-    gridBuilder->addGeometry(triangularMesh, 1);
+    //gridBuilder->addGeometry(triangularMesh, 1);
 
     //gridBuilder->addFineGrid(new Cuboid(15, 15, 15, 25, 25, 25), 1);
     //gridBuilder->addFineGrid(new Cuboid(17, 17, 17, 23, 23, 23), 2);
@@ -291,9 +295,9 @@ void multipleLevel(const std::string& configPath)
 
     gridBuilder->buildGrids();
 
-    gridBuilder->writeGridToVTK("D:/GRIDGENERATION/gridTestSphere_level_0.vtk", 0);
-    gridBuilder->writeGridToVTK("D:/GRIDGENERATION/gridTestSphere_level_1.vtk", 1);
-    //gridBuilder->writeGridToVTK("D:/GRIDGENERATION/gridTestSphere_level_2", 2);
+    gridBuilder->writeGridsToVtk("D:/GRIDGENERATION/");
+
+    //gridBuilder->writeGridToVTK("D:/GRIDGENERATION/gridTestSphere_level_2.vtk", 2);
 
     //gridBuilder->writeGridToVTK("D:/GRIDGENERATION/gridTestCuboid_level_0", 0);
     //gridBuilder->writeGridToVTK("D:/GRIDGENERATION/gridTestCuboid_level_1", 1);