diff --git a/src/GridGenerator/grid/GridBuilder/GridBuilder.h b/src/GridGenerator/grid/GridBuilder/GridBuilder.h
index e4bfdc26498e5e7eaea276f82c83d4528adec93d..78521d070e9c329cc2190b7df8fdce169aee25b2 100644
--- a/src/GridGenerator/grid/GridBuilder/GridBuilder.h
+++ b/src/GridGenerator/grid/GridBuilder/GridBuilder.h
@@ -42,8 +42,6 @@ public:
     virtual VF_PUBLIC uint getNumberOfGridLevels() = 0;
 
 
-	virtual void writeGridToVTK(std::string output, int level) = 0;
-    virtual void writeSimulationFiles(std::string output, BoundingBox &nodesDelete, bool writeFilesBinary, int level) = 0;
     virtual void writeArrows(std::string fileName, std::shared_ptr<ArrowTransformator> trans) const = 0;
 
 	virtual SPtr<Grid> getGrid(uint level) = 0;
diff --git a/src/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp b/src/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp
index b258b3215199ecd61322770494c9a62e49274593..b5badc0a3b1b437573f8b3690a185a27a5c314e4 100644
--- a/src/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp
+++ b/src/GridGenerator/grid/GridBuilder/LevelGridBuilder.cpp
@@ -19,12 +19,10 @@
 #include <GridGenerator/grid/NodeValues.h>
 
 #include <GridGenerator/geometries/Arrow/ArrowImp.h>
-#include <GridGenerator/utilities/Transformator/ArrowTransformator.h>
+#include <GridGenerator/utilities/transformator/ArrowTransformator.h>
 
 #include <utilities/logger/Logger.h>
 
-
-
 #include <GridGenerator/grid/GridFactory.h>
 #include "grid/GridInterface.h"
 //#include "grid/GridMocks.h"
@@ -152,24 +150,6 @@ std::vector<std::string> LevelGridBuilder::getTypeOfBoundaryConditions() const
     return this->channelBoundaryConditions;
 }
 
-void LevelGridBuilder::writeGridToVTK(std::string output, int level)
-{
-   checkLevel(level);
-   GridVTKWriter::writeGridToVTKXML(grids[level], output);
-   GridVTKWriter::writeSparseGridToVTK(grids[level], output);
-}
-
-
-void LevelGridBuilder::writeSimulationFiles(std::string output, BoundingBox &nodesDelete, bool writeFilesBinary, int level)
-{
-    //checkLevel(level);
-    //UnstructuredLevelGridBuilder builder;
-    //builder.buildUnstructuredGrid(this->gridKernels[level]->grid, nodesDelete);
-
-    //std::vector<Node> coords = builder.getCoordsVec();
-    //std::vector<std::vector<std::vector<real> > > qs = builder.getQsValues();
-    //SimulationFileWriter::writeSimulationFiles(output, coords, qs, writeFilesBinary, this->gridKernels[level]->grid, this->transformators[level]);
-}
 
 std::shared_ptr<Grid> LevelGridBuilder::getGrid(int level, int box)
 {
@@ -363,8 +343,6 @@ void LevelGridBuilder::writeArrow(const int i, const int qi, const Vertex& start
     }
 }
 
-
-
 Vertex LevelGridBuilder::getVertex(int matrixIndex) const
 {
     real x, y, z;
diff --git a/src/GridGenerator/grid/GridBuilder/LevelGridBuilder.h b/src/GridGenerator/grid/GridBuilder/LevelGridBuilder.h
index b1ee89dd598217a95fa746502684838f925a6aaf..0a8ac5ecf7a88800e8d616aa166fd2f7f534b279 100644
--- a/src/GridGenerator/grid/GridBuilder/LevelGridBuilder.h
+++ b/src/GridGenerator/grid/GridBuilder/LevelGridBuilder.h
@@ -3,7 +3,6 @@
 
 #include "GridGenerator/global.h"
 
-
 #include <vector>
 #include <string>
 #include <memory>
@@ -20,13 +19,17 @@ class PolyDataWriterWrapper;
 class BoundingBox;
 enum class Device;
 
+enum class BoundaryCondition
+{
+    PERIODIC, VELOCITY, PRESSURE, SLIP, NOSLIP
+};
+
 class LevelGridBuilder : public GridBuilder
 {
 protected:
     VF_PUBLIC LevelGridBuilder(Device device, const std::string& d3qxx);
 
 public:
-
     VF_PUBLIC static std::shared_ptr<LevelGridBuilder> makeShared(Device device, const std::string& d3qxx);
 
     VF_PUBLIC SPtr<Grid> getGrid(uint level) override;
@@ -35,10 +38,6 @@ public:
     VF_PUBLIC virtual ~LevelGridBuilder();
 
 
-    VF_PUBLIC virtual void writeGridToVTK(std::string output, int level);
-    VF_PUBLIC virtual void writeSimulationFiles(std::string output, BoundingBox &nodesDelete,
-                                                bool writeFilesBinary, int level);
-
     VF_PUBLIC virtual std::shared_ptr<Grid> getGrid(int level, int box);
 
     VF_PUBLIC virtual void createBoundaryConditions();
@@ -49,6 +48,11 @@ public:
     VF_PUBLIC virtual int getBoundaryConditionSize(int rb) const;
     VF_PUBLIC virtual std::vector<std::string> getTypeOfBoundaryConditions() const;
 
+    //VF_PUBLIC virtual void setInflowBoundaryCondition(BoundaryCondition boundaryCondition);
+    //VF_PUBLIC virtual void setOutflowBoundaryCondition(BoundaryCondition boundaryCondition);
+    //VF_PUBLIC virtual std::vector<BoundaryCondition> getTypeOfBoundaryCondition() const;
+
+
     VF_PUBLIC virtual void getNodeValues(real *xCoords, real *yCoords, real *zCoords, unsigned int *nx,
                                          unsigned int *ny, unsigned int *nz, unsigned int *geo, const int level) const;
     VF_PUBLIC virtual void getDimensions(int &nx, int &ny, int &nz, const int level) const;
@@ -64,14 +68,13 @@ protected:
 
     std::vector<std::shared_ptr<Grid> > grids;
 
-
     std::vector<std::vector<std::vector<real> > > Qs;
     std::vector<std::string> channelBoundaryConditions;
+    std::vector<BoundaryCondition> channelBoundaryConditionTypes;
 
     void checkLevel(int level);
 
 protected:
-    void removeOverlapNodes();
 
     void createBCVectors();
     void addShortQsToVector(int index);
@@ -85,7 +88,6 @@ protected:
     const;
 
 private:
-
     Device device;
     std::string d3qxx;
 
@@ -98,7 +100,7 @@ public:
     VF_PUBLIC uint getNumberOfNodesCF(int level) override;
     VF_PUBLIC uint getNumberOfNodesFC(int level) override;
 
-    VF_PUBLIC void getGridInterfaceIndices(uint* iCellCfc, uint* iCellCff, uint* iCellFcc, uint* iCellFcf, int level) const;
+    VF_PUBLIC void getGridInterfaceIndices(uint* iCellCfc, uint* iCellCff, uint* iCellFcc, uint* iCellFcf, int level) const override;
 
     VF_PUBLIC void setOffsetFC(real* xOffCf, real* yOffCf, real* zOffCf, int level) override;
     VF_PUBLIC void setOffsetCF(real* xOffFc, real* yOffFc, real* zOffFc, int level) override;