diff --git a/CMake/VirtualFluidsMacros.cmake b/CMake/VirtualFluidsMacros.cmake
index de563d28fbbbc959f96f29fa69470dc74e713556..721d56b89ee22f491c4c984de67fa6ee27fa3b74 100644
--- a/CMake/VirtualFluidsMacros.cmake
+++ b/CMake/VirtualFluidsMacros.cmake
@@ -19,6 +19,8 @@ set (VIRTUAL_FLUIDS_GLOB_FILES
         *.c
         *.h
         *.cu
+        *.cuh
+        *.hpp
         CACHE INTERNAL "File endings to glob for source files" )
 
 
@@ -163,9 +165,11 @@ function(vf_add_library)
       generateExportHeader (${library_name})
     endif()
 
+    target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
     target_include_directories(${library_name} PRIVATE ${CMAKE_BINARY_DIR})
-    target_include_directories(${library_name} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
     target_include_directories(${library_name} PRIVATE ${VF_SRC_DIR})
+    target_include_directories(${library_name} PRIVATE ${VF_SRC_DIR}/gpu)
+    target_include_directories(${library_name} PRIVATE ${VF_SRC_DIR}/cpu)
 
 
     #status("... configuring target: ${library_name} (type=${ARG_BUILDTYPE}) done")
diff --git a/apps/cpu/IncludsList.cmake b/apps/cpu/IncludsList.cmake
deleted file mode 100644
index 9c118e06709823bf4e51837ad4cc58fbd61efcac..0000000000000000000000000000000000000000
--- a/apps/cpu/IncludsList.cmake
+++ /dev/null
@@ -1,14 +0,0 @@
-INCLUDE_DIRECTORIES(${APPS_ROOT_CPU})
-INCLUDE(${VF_SRC_DIR}/cpu/VirtualFluidsCore/IncludsList.cmake)
-
-INCLUDE_DIRECTORIES(${VF_SRC_DIR}/cpu/VirtualFluidsCore)
-INCLUDE_DIRECTORIES(${VF_SRC_DIR}/basics)
-INCLUDE_DIRECTORIES(${VF_SRC_DIR}/basics/geometry3d)
-INCLUDE_DIRECTORIES(${VF_SRC_DIR}/basics/geometry3d/Creator)
-INCLUDE_DIRECTORIES(${VF_SRC_DIR}/basics/geometry3d/KdTree)
-INCLUDE_DIRECTORIES(${VF_SRC_DIR}/basics/basics/container)
-INCLUDE_DIRECTORIES(${VF_SRC_DIR}/basics/basics/memory)
-INCLUDE_DIRECTORIES(${VF_SRC_DIR}/basics/basics/objects)
-INCLUDE_DIRECTORIES(${VF_SRC_DIR}/basics/basics/transmiitter)
-INCLUDE_DIRECTORIES(${VF_SRC_DIR}/basics/basics/utilities)
-INCLUDE_DIRECTORIES(${VF_SRC_DIR}/basics/basics/writer)
diff --git a/apps/cpu/LidDrivenCavityCPU/CMakeLists.txt b/apps/cpu/LidDrivenCavityCPU/CMakeLists.txt
index 4e01ca8101dc265159ae5830b951be37a510d88f..dbcc5519841fc61e1ae5b454134aa352be4ba9a0 100644
--- a/apps/cpu/LidDrivenCavityCPU/CMakeLists.txt
+++ b/apps/cpu/LidDrivenCavityCPU/CMakeLists.txt
@@ -2,7 +2,7 @@
 
 PROJECT(LidDrivenCavity)
 
-INCLUDE(${APPS_ROOT_CPU}/IncludsList.cmake)
-
-
 vf_add_library(BUILDTYPE binary DEPENDS VirtualFluidsCore basics FILES LidDrivenCavity.cpp)
+
+vf_get_library_name (library_name)
+target_include_directories(${library_name} PRIVATE ${APPS_ROOT_CPU})
\ No newline at end of file
diff --git a/apps/gpu/LidDrivenCavity/CMakeLists.txt b/apps/gpu/LidDrivenCavity/CMakeLists.txt
index c404f6a6d2ccc156d7fba562ceefde35873e08d0..f049da0390b5dac566531fbec690c6c81eae579d 100644
--- a/apps/gpu/LidDrivenCavity/CMakeLists.txt
+++ b/apps/gpu/LidDrivenCavity/CMakeLists.txt
@@ -1,18 +1,6 @@
 
-set(includeDirectories "${CMAKE_SOURCE_DIR}/src/gpu"
-                       "${CMAKE_SOURCE_DIR}/src/basics/Core"
-                       "${CMAKE_SOURCE_DIR}/src/gpu/VirtualFluids_GPU"
-                       "${CMAKE_SOURCE_DIR}/src/gpu/GridGenerator"
-                       "${CMAKE_SOURCE_DIR}/src/basics"
-                       "${CMAKE_SOURCE_DIR}/src/gpu/GksMeshAdapter"
-                       "${CMAKE_SOURCE_DIR}/src/gpu/GksGpu")
-
-
 
 PROJECT(LidDrivenCavity)
 
 
 vf_add_library(BUILDTYPE binary DEPENDS basics GridGenerator VirtualFluids_GPU GksMeshAdapter GksGpu FILES LidDrivenCavity.cpp)
-
-vf_get_library_name(library_name)
-target_include_directories(${library_name} PRIVATE ${includeDirectories} )
\ No newline at end of file
diff --git a/cpu.cmake b/cpu.cmake
index d554c74a068c7711a7b7c02c0e67d1179a8f7dc3..050be2699bfa6a5a840d2946156f0efdf9f943d4 100644
--- a/cpu.cmake
+++ b/cpu.cmake
@@ -11,5 +11,5 @@ add_subdirectory(${VF_THIRD_DIR}/MuParser)
 
 add_subdirectory(src/cpu/VirtualFluidsCore)
 
-set (APPS_ROOT_CPU "${CMAKE_SOURCE_DIR}/apps/cpu/")
+set (APPS_ROOT_CPU "${VF_ROOT_DIR}/apps/cpu/")
 include(${APPS_ROOT_CPU}/Applications.cmake)
\ No newline at end of file
diff --git a/src/basics/CMakeLists.txt b/src/basics/CMakeLists.txt
index 0b14ad606e7744aee9d0a00e81652353ae37ab78..eb1ef8d2adbc60e002b779b070e9a8faca2eb682 100644
--- a/src/basics/CMakeLists.txt
+++ b/src/basics/CMakeLists.txt
@@ -4,12 +4,14 @@ include(Core/buildInfo.cmake)
 vf_add_library(BUILDTYPE static EXCLUDE buildInfo.in.cpp)
 
 vf_get_library_name (library_name)
-target_include_directories(${library_name} PRIVATE ${CMAKE_CURRENT_LIST_DIR}/Core)
-target_include_directories(${library_name} PRIVATE ${CMAKE_CURRENT_LIST_DIR}/geometry3d)
-target_include_directories(${library_name} PRIVATE ${CMAKE_CURRENT_LIST_DIR}/basics/container)
-target_include_directories(${library_name} PRIVATE ${CMAKE_CURRENT_LIST_DIR}/basics/objects)
-target_include_directories(${library_name} PRIVATE ${CMAKE_CURRENT_LIST_DIR}/utilities)
-target_include_directories(${library_name} PRIVATE ${CMAKE_CURRENT_LIST_DIR}/basics/writer)
+target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Core)
+target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/geometry3d)
+target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/basics)
+target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/basics/container)
+target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/basics/objects)
+target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/basics/utilities)
+target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/basics/writer)
+
 
 IF(MSVC)
     target_compile_definitions(${library_name} PUBLIC NOMINMAX) # Disable Min/Max-Macros
diff --git a/src/cpu/VirtualFluidsCore/CMakeLists.txt b/src/cpu/VirtualFluidsCore/CMakeLists.txt
index 889c09c539f62eeef34704cdadb5bb9a3a3f4e60..3bdae4630a004d4fa858f48a5ced701fd83799df 100644
--- a/src/cpu/VirtualFluidsCore/CMakeLists.txt
+++ b/src/cpu/VirtualFluidsCore/CMakeLists.txt
@@ -1,6 +1,4 @@
 
-INCLUDE(${CMAKE_CURRENT_LIST_DIR}/IncludsList.cmake)
-
 IF(${USE_GCC})
    SET(CAB_ADDITIONAL_LINK_LIBRARIES ${CAB_ADDITIONAL_LINK_LIBRARIES} rt)
    SET(CAB_ADDITIONAL_LINK_LIBRARIES ${CAB_ADDITIONAL_LINK_LIBRARIES} gomp)
@@ -15,12 +13,18 @@ ENDIF()
 vf_add_library(BUILDTYPE static DEPENDS basics MuParser ${CAB_ADDITIONAL_LINK_LIBRARIES})
 
 vf_get_library_name(library_name)
-target_include_directories(${library_name} PRIVATE ${VF_SRC_DIR}/basics)
-target_include_directories(${library_name} PRIVATE ${VF_SRC_DIR}/basics/geometry3d)
-target_include_directories(${library_name} PRIVATE ${VF_SRC_DIR}/basics/basics/container)
-target_include_directories(${library_name} PRIVATE ${VF_SRC_DIR}/basics/basics/memory)
-target_include_directories(${library_name} PRIVATE ${VF_SRC_DIR}/basics/basics/objects)
-target_include_directories(${library_name} PRIVATE ${VF_SRC_DIR}/basics/basics/transmitter)
-target_include_directories(${library_name} PRIVATE ${VF_SRC_DIR}/basics/basics/utilities)
-target_include_directories(${library_name} PRIVATE ${VF_SRC_DIR}/basics/basics/writer)
+
+target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/BoundaryConditions)
+target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Connectors)
+target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Data)
+target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Interactors)
+target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/LBM)
+target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Parallel)
+target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Grid)
+target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Visitors)
+target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/CoProcessors)
+target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Utilities)
+
+
+target_include_directories(${library_name} PUBLIC ${VF_THIRD_DIR})
 
diff --git a/src/cpu/VirtualFluidsCore/IncludsList.cmake b/src/cpu/VirtualFluidsCore/IncludsList.cmake
deleted file mode 100644
index 57eff2ed980f469b3a9913948fa31e9a3e5bf3d1..0000000000000000000000000000000000000000
--- a/src/cpu/VirtualFluidsCore/IncludsList.cmake
+++ /dev/null
@@ -1,20 +0,0 @@
-#directory pathes for header files
-
-set(VirtualFluidsCore_source_dir ${VF_SRC_DIR}/cpu/VirtualFluidsCore)
-vf_get_library_name(library_name)
-
-set (SOURCE_DIR "${CMAKE_SOURCE_DIR}/src/cpu/")
-INCLUDE_DIRECTORIES(${VirtualFluidsCore_source_dir}/BoundaryConditions)
-INCLUDE_DIRECTORIES(${VirtualFluidsCore_source_dir}/Connectors)
-INCLUDE_DIRECTORIES(${VirtualFluidsCore_source_dir}/Data)
-INCLUDE_DIRECTORIES(${VirtualFluidsCore_source_dir}/Interactors)
-INCLUDE_DIRECTORIES(${VirtualFluidsCore_source_dir}/LBM)
-INCLUDE_DIRECTORIES(${VirtualFluidsCore_source_dir}/Parallel)
-INCLUDE_DIRECTORIES(${VirtualFluidsCore_source_dir}/Grid)
-INCLUDE_DIRECTORIES(${VirtualFluidsCore_source_dir}/Visitors)
-INCLUDE_DIRECTORIES(${VirtualFluidsCore_source_dir}/CoProcessors)
-INCLUDE_DIRECTORIES(${VirtualFluidsCore_source_dir}/Utilities)
-
-INCLUDE_DIRECTORIES(${VF_THIRD_DIR})
-
-
diff --git a/src/gpu/GksGpu/CMakeLists.txt b/src/gpu/GksGpu/CMakeLists.txt
index 1ba2960e122963a921c363cf7aa8697e3117a629..682bcccabd2cc7d77decd1b59adddec47c5521b2 100644
--- a/src/gpu/GksGpu/CMakeLists.txt
+++ b/src/gpu/GksGpu/CMakeLists.txt
@@ -4,9 +4,3 @@ vf_add_library(BUILDTYPE shared DEPENDS basics GksMeshAdapter)
 include (${VF_CMAKE_DIR}/3rd/cuda.cmake)
 include (${VF_CMAKE_DIR}/3rd/mpi.cmake)
 include (${VF_CMAKE_DIR}/3rd/OpenMP.cmake)
-
-vf_get_library_name(library_name)
-target_include_directories(${library_name} PRIVATE "${CMAKE_SOURCE_DIR}/src/basics")
-target_include_directories(${library_name} PRIVATE "${CMAKE_SOURCE_DIR}/src/gpu")
-target_include_directories(${library_name} PRIVATE "${CMAKE_SOURCE_DIR}/src/gpu/GksMeshAdapter")
-target_include_directories(${library_name} PRIVATE "${CMAKE_SOURCE_DIR}/src/basics/Core")
diff --git a/src/gpu/GksMeshAdapter/CMakeLists.txt b/src/gpu/GksMeshAdapter/CMakeLists.txt
index a467037cc0926894de5ee35b04e30a2d3e94d2c5..7e008f0cef544e51fa1f474b60a18e3d8ca9cbc9 100644
--- a/src/gpu/GksMeshAdapter/CMakeLists.txt
+++ b/src/gpu/GksMeshAdapter/CMakeLists.txt
@@ -1,11 +1,3 @@
 
 
 vf_add_library(BUILDTYPE shared DEPENDS basics GridGenerator)
-
-
-vf_get_library_name(library_name)
-target_include_directories(${library_name} PRIVATE "${CMAKE_SOURCE_DIR}/src/basics")
-target_include_directories(${library_name} PRIVATE "${CMAKE_SOURCE_DIR}/src/gpu")
-target_include_directories(${library_name} PRIVATE "${CMAKE_SOURCE_DIR}/src/gpu/GridGenerator")
-target_include_directories(${library_name} PRIVATE "${CMAKE_SOURCE_DIR}/src/basics/Core")
-
diff --git a/src/gpu/GridGenerator/CMakeLists.txt b/src/gpu/GridGenerator/CMakeLists.txt
index 92f83cc1b27bbb7c130e24c55042ed6f27a841ec..c974d02d62bea58e91847c341355588880ce7c46 100644
--- a/src/gpu/GridGenerator/CMakeLists.txt
+++ b/src/gpu/GridGenerator/CMakeLists.txt
@@ -5,11 +5,5 @@ vf_add_library(BUILDTYPE shared DEPENDS basics)
 include (${VF_CMAKE_DIR}/3rd/cuda.cmake)
 include (${VF_CMAKE_DIR}/3rd/OpenMP.cmake)
 
-vf_get_library_name(library_name)
-target_include_directories(${library_name} PRIVATE ${VF_SRC_DIR}/basics)
-target_include_directories(${library_name} PRIVATE ${VF_SRC_DIR}/basics/geometry3d)
-target_include_directories(${library_name} PRIVATE ${VF_SRC_DIR}/gpu)
-target_include_directories(${library_name} PRIVATE ${VF_SRC_DIR}/basics/Core)
-
 
 set_property(TARGET ${library_name} PROPERTY CUDA_SEPARABLE_COMPILATION ON)
\ No newline at end of file
diff --git a/src/gpu/VirtualFluids_GPU/CMakeLists.txt b/src/gpu/VirtualFluids_GPU/CMakeLists.txt
index 2098866b608bdaee1d9471393e14b779b7b1384a..ebe26edce1edf26e2b018ae1407c04955c00eafc 100644
--- a/src/gpu/VirtualFluids_GPU/CMakeLists.txt
+++ b/src/gpu/VirtualFluids_GPU/CMakeLists.txt
@@ -11,17 +11,12 @@ vf_add_library(BUILDTYPE shared DEPENDS ${libsToLink})
 
 include (${VF_CMAKE_DIR}/3rd/cuda.cmake)
 
-vf_get_library_name(library_name)
-target_include_directories(${library_name} PRIVATE ${VF_SRC_DIR}/basics)
-target_include_directories(${library_name} PRIVATE ${VF_SRC_DIR}/gpu)
-target_include_directories(${library_name} PRIVATE ${VF_SRC_DIR}/gpu/GridGenerator)
-target_include_directories(${library_name} PRIVATE ${VF_SRC_DIR}/basics/Core)
-
 
 #SET(TPN_WIN32 "/EHsc")
 #https://stackoverflow.com/questions/6832666/lnk2019-when-including-asio-headers-solution-generated-with-cmake
 #https://stackoverflow.com/questions/27442885/syntax-error-with-stdnumeric-limitsmax
 
 IF(MSVC)
+    vf_get_library_name(library_name)
     set_target_properties(${library_name} PROPERTIES LINK_FLAGS "/ignore:4251")
 ENDIF(MSVC)
diff --git a/src/gpu/VirtualFluids_GPU/Output/FileWriter.cpp b/src/gpu/VirtualFluids_GPU/Output/FileWriter.cpp
index a57570a6c481b4399a9e561992db901f2aa407f5..5f3b275c528b97b31d1961ca5f90d049ddcef441 100644
--- a/src/gpu/VirtualFluids_GPU/Output/FileWriter.cpp
+++ b/src/gpu/VirtualFluids_GPU/Output/FileWriter.cpp
@@ -70,7 +70,7 @@ bool FileWriter::isPeriodicCell(SPtr<Parameter> para, uint number2, uint number1
 void FileWriter::writeUnstrucuredGridLT(SPtr<Parameter> para, std::vector<std::string >& fname)
 {
     std::vector< UbTupleFloat3 > nodes;
-    std::vector< UbTupleInt8 > cells;
+    std::vector< UbTupleUInt8 > cells;
     std::vector< std::string > nodedatanames;
     nodedatanames.push_back("Press");
     nodedatanames.push_back("DRho");
@@ -79,7 +79,7 @@ void FileWriter::writeUnstrucuredGridLT(SPtr<Parameter> para, std::vector<std::s
     nodedatanames.push_back("Vz");
     nodedatanames.push_back("Geometry");
     unsigned int number1, number2, number3, number4, number5, number6, number7, number8;
-    int dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8;
+    unsigned int dn1, dn2, dn3, dn4, dn5, dn6, dn7, dn8;
     bool neighborsAreFluid;
     double vxmax = 0;
     unsigned int startpos = 0;