diff --git a/source/Applications/OrganPipe/OrganPipe.cpp b/source/Applications/OrganPipe/OrganPipe.cpp
index 0d1ff3e32e372e2ec94ae94cc6022b5c043f0d33..16772ef3448b6b9c56b16f7f4755c175ed553aa4 100644
--- a/source/Applications/OrganPipe/OrganPipe.cpp
+++ b/source/Applications/OrganPipe/OrganPipe.cpp
@@ -134,14 +134,15 @@ void run(string configname)
       outflowBCAdapter->setBcAlgorithm(SPtr<BCAlgorithm>(new NonReflectingOutflowBCAlgorithm()));
 
       BoundaryConditionsBlockVisitor bcVisitor;
-      bcVisitor.addBC(noSlipBCAdapter);
+      bcVisitor.addBC(slipBCAdapter);
       bcVisitor.addBC(velBCAdapter);
       bcVisitor.addBC(outflowBCAdapter);
 
       SPtr<BCProcessor> bcProc;
       bcProc = SPtr<BCProcessor>(new BCProcessor());
 
-      SPtr<LBMKernel> kernel = SPtr<LBMKernel>(new CompressibleCumulantLBMKernel());
+      //SPtr<LBMKernel> kernel = SPtr<LBMKernel>(new CompressibleCumulantLBMKernel());
+      SPtr<LBMKernel> kernel = SPtr<LBMKernel>(new CompressibleCumulant4thOrderViscosityLBMKernel());
 
       kernel->setBCProcessor(bcProc);
       //////////////////////////////////////////////////////////////////////////
@@ -209,11 +210,11 @@ void run(string configname)
          if (myid == 0) GbSystem3D::writeGeoObject(addWallZmax.get(), pathOut + "/geo/addWallZmax", WbWriterVtkXmlASCII::getInstance());
 
          //wall interactors
-         SPtr<D3Q27Interactor> addWallXminInt(new D3Q27Interactor(addWallXmin, grid, noSlipBCAdapter, Interactor3D::SOLID));
-         SPtr<D3Q27Interactor> addWallYminInt(new D3Q27Interactor(addWallYmin, grid, noSlipBCAdapter, Interactor3D::SOLID));
-         SPtr<D3Q27Interactor> addWallYmaxInt(new D3Q27Interactor(addWallYmax, grid, noSlipBCAdapter, Interactor3D::SOLID));
-         SPtr<D3Q27Interactor> addWallZminInt(new D3Q27Interactor(addWallZmin, grid, noSlipBCAdapter, Interactor3D::SOLID));
-         SPtr<D3Q27Interactor> addWallZmaxInt(new D3Q27Interactor(addWallZmax, grid, noSlipBCAdapter, Interactor3D::SOLID));
+         SPtr<D3Q27Interactor> addWallXminInt(new D3Q27Interactor(addWallXmin, grid, slipBCAdapter, Interactor3D::SOLID));
+         SPtr<D3Q27Interactor> addWallYminInt(new D3Q27Interactor(addWallYmin, grid, slipBCAdapter, Interactor3D::SOLID));
+         SPtr<D3Q27Interactor> addWallYmaxInt(new D3Q27Interactor(addWallYmax, grid, slipBCAdapter, Interactor3D::SOLID));
+         SPtr<D3Q27Interactor> addWallZminInt(new D3Q27Interactor(addWallZmin, grid, slipBCAdapter, Interactor3D::SOLID));
+         SPtr<D3Q27Interactor> addWallZmaxInt(new D3Q27Interactor(addWallZmax, grid, slipBCAdapter, Interactor3D::SOLID));
 
          //inflow
          
@@ -293,7 +294,8 @@ void run(string configname)
 
          if (refineLevel > 0)
          {
-            SetUndefinedNodesBlockVisitor undefNodesVisitor;
+            bool twoTypeOfConnectorsCheck = false;
+            SetUndefinedNodesBlockVisitor undefNodesVisitor(twoTypeOfConnectorsCheck);
             grid->accept(undefNodesVisitor);
          }
 
diff --git a/source/VirtualFluidsCore/Visitors/SetKernelBlockVisitor.cpp b/source/VirtualFluidsCore/Visitors/SetKernelBlockVisitor.cpp
index 17ebd9b84dfa7ce38d3137615d5c46e8fb6feb31..a2987ee43d75609fd7953beee02acd99ca4cd298 100644
--- a/source/VirtualFluidsCore/Visitors/SetKernelBlockVisitor.cpp
+++ b/source/VirtualFluidsCore/Visitors/SetKernelBlockVisitor.cpp
@@ -7,23 +7,8 @@
 #include "Block3D.h"
 #include "LBMKernel.h"
 
-//SetKernelBlockVisitor::SetKernelBlockVisitor(LBMKernel3DPtr kernel, LBMReal nue) : 
-//                        Block3DVisitor(0, Grid3DSystem::MAXLEVEL), kernel(kernel), nue(nue)
-//{
-//
-//}
 //////////////////////////////////////////////////////////////////////////
-//SetKernelBlockVisitor::SetKernelBlockVisitor( LBMKernel3DPtr kernel, LBMReal nue, double availMem, double needMem ) : 
-//                                              Block3DVisitor(0, Grid3DSystem::MAXLEVEL), kernel(kernel), nue(nue)
-//{
-//   if (needMem > availMem)
-//   {
-//      throw UbException(UB_EXARGS,"SetKernelBlockVisitor: Not enough memory!!!");
-//   }
-//}
-//////////////////////////////////////////////////////////////////////////
-SetKernelBlockVisitor::SetKernelBlockVisitor(SPtr<LBMKernel> kernel, LBMReal nue, double availMem, double needMem, SetKernelBlockVisitor::Action action /*= SetKernelBlockVisitor::New*/) :
-                                             Block3DVisitor(0, Grid3DSystem::MAXLEVEL), kernel(kernel), nue(nue), action(action), dataSetFlag(true)
+SetKernelBlockVisitor::SetKernelBlockVisitor(SPtr<LBMKernel> kernel, LBMReal nue, double availMem, double needMem, SetKernelBlockVisitor::Action action) : Block3DVisitor(0, Grid3DSystem::MAXLEVEL), kernel(kernel), nue(nue), action(action), dataSetFlag(true)
 {
    if (needMem > availMem)
    {
diff --git a/source/VirtualFluidsCore/Visitors/SetUndefinedNodesBlockVisitor.cpp b/source/VirtualFluidsCore/Visitors/SetUndefinedNodesBlockVisitor.cpp
index 91919327ac6665244aa37963d61492523b202069..313a741e5c5d8d480db4787eece03c4ecd5b095f 100644
--- a/source/VirtualFluidsCore/Visitors/SetUndefinedNodesBlockVisitor.cpp
+++ b/source/VirtualFluidsCore/Visitors/SetUndefinedNodesBlockVisitor.cpp
@@ -10,8 +10,7 @@
 #include "ILBMKernel.h"
 
 
-SetUndefinedNodesBlockVisitor::SetUndefinedNodesBlockVisitor() : 
-                                    Block3DVisitor(0, Grid3DSystem::MAXLEVEL) 
+SetUndefinedNodesBlockVisitor::SetUndefinedNodesBlockVisitor(bool twoTypeOfConectorsCheck) : Block3DVisitor(0, Grid3DSystem::MAXLEVEL), twoTypeOfConnectorsCheck(twoTypeOfConnectorsCheck) 
 {
 
 }
@@ -634,18 +633,18 @@ void SetUndefinedNodesBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> block
    //invert scaleCF blocks
    if(block->hasInterpolationFlagCF())
    {
-      //if(block->hasInterpolationFlagFC()) 
-      //{
-      //   for (int i = D3Q27System::E; i <= D3Q27System::BSW; i++)
-      //   {
-      //       UBLOG(logINFO, "FC in dir="<<i<<" "<<block->hasInterpolationFlagFC(i));
-      //   }
-      //   for (int i = D3Q27System::E; i<=D3Q27System::BSW; i++)
-      //   {
-      //      UBLOG(logINFO, "CF in dir="<<i<<" "<<block->hasInterpolationFlagCF(i));
-      //   }
-      //   throw UbException(UB_EXARGS, "block "+block->toString()+" has CF and FC");
-      //}
+      if(block->hasInterpolationFlagFC() && twoTypeOfConnectorsCheck) 
+      {
+         for (int i = D3Q27System::E; i <= D3Q27System::BSW; i++)
+         {
+             UBLOG(logINFO, "FC in dir="<<i<<" "<<block->hasInterpolationFlagFC(i));
+         }
+         for (int i = D3Q27System::E; i<=D3Q27System::BSW; i++)
+         {
+            UBLOG(logINFO, "CF in dir="<<i<<" "<<block->hasInterpolationFlagCF(i));
+         }
+         throw UbException(UB_EXARGS, "block "+block->toString()+" has CF and FC");
+      }
 
       minX1 = gl;
       minX2 = gl;
diff --git a/source/VirtualFluidsCore/Visitors/SetUndefinedNodesBlockVisitor.h b/source/VirtualFluidsCore/Visitors/SetUndefinedNodesBlockVisitor.h
index b8ecc3a99ac62b39080ea91e26749c321d3b5712..0d3cd6270050b8193d1f4127e024a1b86b70705b 100644
--- a/source/VirtualFluidsCore/Visitors/SetUndefinedNodesBlockVisitor.h
+++ b/source/VirtualFluidsCore/Visitors/SetUndefinedNodesBlockVisitor.h
@@ -12,13 +12,15 @@ class BCArray3D;
 class SetUndefinedNodesBlockVisitor : public Block3DVisitor
 {
 public:
-   SetUndefinedNodesBlockVisitor();
+   SetUndefinedNodesBlockVisitor(bool twoTypeOfConnectorsCheck = true);
 
    virtual ~SetUndefinedNodesBlockVisitor() {}
 
    void visit(SPtr<Grid3D> grid, SPtr<Block3D> block) override;
-
-private:
+protected:
    void setNodesUndefined( int startix1, int endix1, int startix2, int endix2, int startix3, int endix3, SPtr<BCArray3D> bcMatix );
+private:
+   bool twoTypeOfConnectorsCheck;
+
 };
 #endif