diff --git a/gpu/CMakeMacros/Boost/Link.cmake b/CMake/3rd/boost.cmake
similarity index 70%
rename from gpu/CMakeMacros/Boost/Link.cmake
rename to CMake/3rd/boost.cmake
index 207ecea198fb3738f3fda792283d8b8ac34297a6..0426ff8f06ba4ac152d03b91602882c7f5b1b58b 100644
--- a/gpu/CMakeMacros/Boost/Link.cmake
+++ b/CMake/3rd/boost.cmake
@@ -1,4 +1,4 @@
-macro(linkBoost targetName components)
+macro(linkBoost components)
   if(BUILD_SHARED_LIBS)
      if (WIN32)
          set(Boost_USE_STATIC_LIBS ON)
@@ -17,8 +17,8 @@ macro(linkBoost targetName components)
 	add_definitions( -DBOOST_ALL_NO_LIB )
 #	add_definitions( -DBOOST_ALL_DYN_LINK )
   endif()
-  
+  vf_get_library_name(library_name)
   find_package( Boost REQUIRED COMPONENTS ${components})
-  target_include_directories(${targetName} PRIVATE ${Boost_INCLUDE_DIR})
-  target_link_libraries(${targetName} ${Boost_LIBRARIES})
+  target_include_directories(${library_name} PRIVATE ${Boost_INCLUDE_DIR})
+  target_link_libraries(${library_name} ${Boost_LIBRARIES})
 endmacro(linkBoost)
diff --git a/gpu/CMakeMacros/git/GetGitRevisionDescription.cmake b/CMake/3rd/git/GetGitRevisionDescription.cmake
similarity index 100%
rename from gpu/CMakeMacros/git/GetGitRevisionDescription.cmake
rename to CMake/3rd/git/GetGitRevisionDescription.cmake
diff --git a/gpu/CMakeMacros/git/GetGitRevisionDescription.cmake.in b/CMake/3rd/git/GetGitRevisionDescription.cmake.in
similarity index 100%
rename from gpu/CMakeMacros/git/GetGitRevisionDescription.cmake.in
rename to CMake/3rd/git/GetGitRevisionDescription.cmake.in
diff --git a/CMake/3rd/mpi.cmake b/CMake/3rd/mpi.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..b3e9724f4b3227492809cc38f91b6aecb224f208
--- /dev/null
+++ b/CMake/3rd/mpi.cmake
@@ -0,0 +1,9 @@
+
+
+
+vf_get_library_name(library_name)
+find_package(MPI REQUIRED)
+target_include_directories(${library_name} PRIVATE ${MPI_C_INCLUDE_PATH})
+
+target_link_libraries(${library_name} ${MPI_C_LIBRARIES})
+
diff --git a/cpu/CMake/CMakeCABMacros.cmake b/CMake/CMakeCABMacros.cmake
similarity index 100%
rename from cpu/CMake/CMakeCABMacros.cmake
rename to CMake/CMakeCABMacros.cmake
diff --git a/cpu/CMake/CMakeCompilerMacros.cmake b/CMake/CMakeCompilerMacros.cmake
similarity index 100%
rename from cpu/CMake/CMakeCompilerMacros.cmake
rename to CMake/CMakeCompilerMacros.cmake
diff --git a/cpu/CMake/CMakePackages.txt b/CMake/CMakePackages.txt
similarity index 100%
rename from cpu/CMake/CMakePackages.txt
rename to CMake/CMakePackages.txt
diff --git a/cpu/CMake/CMakeSetCompilerFlags.cmake b/CMake/CMakeSetCompilerFlags.cmake
similarity index 100%
rename from cpu/CMake/CMakeSetCompilerFlags.cmake
rename to CMake/CMakeSetCompilerFlags.cmake
diff --git a/cpu/CMake/VirtualFluidsMacros.cmake b/CMake/VirtualFluidsMacros.cmake
similarity index 76%
rename from cpu/CMake/VirtualFluidsMacros.cmake
rename to CMake/VirtualFluidsMacros.cmake
index fb7719f55027c4697d3e3ce6740c33ac1a9e56e8..0a5c0c07bfda32f4d7ed8e6afce2f6d2209779d6 100644
--- a/cpu/CMake/VirtualFluidsMacros.cmake
+++ b/CMake/VirtualFluidsMacros.cmake
@@ -21,10 +21,10 @@ function(vf_add_library)
 
     set( options )
     set( oneValueArgs )
-    set( multiValueArgs BUILDTYPE DEPENDS FILES FOLDER)
+    set( multiValueArgs BUILDTYPE DEPENDS FILES FOLDER EXCLUDE)
     cmake_parse_arguments( ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
 
-    message("Files: ${ARG_FILES}")
+    #message("Files: ${ARG_FILES}")
 
     vf_get_library_name (library_name)
 
@@ -44,21 +44,38 @@ function(vf_add_library)
     endif()
 
     if (NOT ARG_FILES AND NOT ARG_FOLDER)
-        file ( GLOB_RECURSE sourceFiles ${VIRTUAL_FLUIDS_GLOB_FILES} )
+        file ( GLOB_RECURSE all_files ${VIRTUAL_FLUIDS_GLOB_FILES} )
+        set(sourceFiles ${sourceFiles} ${all_files})
     endif()
 
-    #    foreach(X IN LISTS sourceFiles)
-    #      message(STATUS "${X}")
-    #    endforeach()
+    if (ARG_EXCLUDE)
+        foreach(file_path ${sourceFiles})
+            foreach(file_exclude ${ARG_EXCLUDE})
+                get_filename_component(file_name ${file_path} NAME)
+                if (NOT ${file_name} STREQUAL ${file_exclude})
+                    set(new_files ${new_files} ${file_path})
+                endif()
+
+            endforeach()
+        endforeach()
+        set(sourceFiles ${new_files})
+    endif()
+
+
+    includeProductionFiles (${library_name} "${sourceFiles}")
+
+    foreach(X IN LISTS MY_SRCS)
+        message(STATUS "${X}")
+    endforeach()
 
 
     # SET SOURCE GROUP
     # IF SOURCE GROUP ENABLED
     foreach(source ${sourceFiles})
-        get_filename_component(source_dir ${source} DIRECTORY)
+        #  get_filename_component(source_dir ${source} DIRECTORY)
 
         if (source_dir)
-          setSourceGroupForFilesIn(${source_dir} ${library_name})
+            #setSourceGroupForFilesIn(${source_dir} ${library_name})
         endif()
     endforeach()
 
@@ -87,11 +104,11 @@ function(vf_add_library)
     ###   EXCECUTABLE                                             ###
     #################################################################
     IF(${ARG_BUILDTYPE} MATCHES binary)
-        ADD_EXECUTABLE(${library_name} ${sourceFiles} )
+        ADD_EXECUTABLE(${library_name} ${MY_SRCS} )
     ELSEIF(${ARG_BUILDTYPE} MATCHES shared)
-        ADD_LIBRARY(${library_name} shared ${sourceFiles} )
+        ADD_LIBRARY(${library_name} SHARED ${MY_SRCS} )
     ELSEIF(${ARG_BUILDTYPE} MATCHES static)
-        ADD_LIBRARY(${library_name} STATIC ${sourceFiles} )
+        ADD_LIBRARY(${library_name} STATIC ${MY_SRCS} )
     ELSE()
         MESSAGE(FATAL_ERROR "build_type=${ARG_BUILDTYPE} doesn't match BINARY, SHARED or STATIC")
     ENDIF()
@@ -145,44 +162,3 @@ function(vf_add_library)
 
 endfunction(vf_add_library)
 
-
-
-
-macro(setSourceGroupForFilesIn package_dir targetName)
-    #input: target_name PACKAGE_SRCS
-    buildSourceGroup(${targetName} ${package_dir})
-
-    if(isAllTestSuite)
-        source_group(${targetName}\\${SOURCE_GROUP} FILES ${source})
-    else()
-        source_group(${SOURCE_GROUP} FILES ${source})
-    endif()
-    #output: -
-endmacro(setSourceGroupForFilesIn)
-
-
-
-
-macro(buildSourceGroup targetName path)
-    #input: targetName (e.g. lib name, exe name)
-
-    unset(SOURCE_GROUP)
-    string(REPLACE "/" ";" folderListFromPath ${path})
-    set(findTargetName 0)
-
-    foreach(folder ${folderListFromPath})
-        if(findTargetName)
-            set(SOURCE_GROUP ${SOURCE_GROUP}\\${folder})
-        endif()
-
-        if(${folder} STREQUAL ${targetName})
-            SET(findTargetName 1)
-        endif()
-    endforeach()
-
-    if(NOT SOURCE_GROUP)
-        set(SOURCE_GROUP "general")
-    endif()
-    #message("Source group: ${SOURCE_GROUP}")
-    #output: SOURCE_GROUP
-endmacro(buildSourceGroup)
\ No newline at end of file
diff --git a/cpu/CMake/cmake_config_files/ALATAR.config.cmake b/CMake/cmake_config_files/ALATAR.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/ALATAR.config.cmake
rename to CMake/cmake_config_files/ALATAR.config.cmake
diff --git a/cpu/CMake/cmake_config_files/ALTIX.config.cmake b/CMake/cmake_config_files/ALTIX.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/ALTIX.config.cmake
rename to CMake/cmake_config_files/ALTIX.config.cmake
diff --git a/cpu/CMake/cmake_config_files/AMAN.config.cmake b/CMake/cmake_config_files/AMAN.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/AMAN.config.cmake
rename to CMake/cmake_config_files/AMAN.config.cmake
diff --git a/cpu/CMake/cmake_config_files/AMATERASU.config.cmake b/CMake/cmake_config_files/AMATERASU.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/AMATERASU.config.cmake
rename to CMake/cmake_config_files/AMATERASU.config.cmake
diff --git a/cpu/CMake/cmake_config_files/ARAGORN.config.cmake b/CMake/cmake_config_files/ARAGORN.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/ARAGORN.config.cmake
rename to CMake/cmake_config_files/ARAGORN.config.cmake
diff --git a/cpu/CMake/cmake_config_files/ARWEN.config.cmake b/CMake/cmake_config_files/ARWEN.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/ARWEN.config.cmake
rename to CMake/cmake_config_files/ARWEN.config.cmake
diff --git a/cpu/CMake/cmake_config_files/BILBO.config.cmake b/CMake/cmake_config_files/BILBO.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/BILBO.config.cmake
rename to CMake/cmake_config_files/BILBO.config.cmake
diff --git a/cpu/CMake/cmake_config_files/BLOGIN.config.cmake b/CMake/cmake_config_files/BLOGIN.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/BLOGIN.config.cmake
rename to CMake/cmake_config_files/BLOGIN.config.cmake
diff --git a/cpu/CMake/cmake_config_files/BLOGIN1.config.cmake b/CMake/cmake_config_files/BLOGIN1.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/BLOGIN1.config.cmake
rename to CMake/cmake_config_files/BLOGIN1.config.cmake
diff --git a/cpu/CMake/cmake_config_files/BLOGIN2.config.cmake b/CMake/cmake_config_files/BLOGIN2.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/BLOGIN2.config.cmake
rename to CMake/cmake_config_files/BLOGIN2.config.cmake
diff --git a/cpu/CMake/cmake_config_files/BOMBADIL.config.cmake b/CMake/cmake_config_files/BOMBADIL.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/BOMBADIL.config.cmake
rename to CMake/cmake_config_files/BOMBADIL.config.cmake
diff --git a/cpu/CMake/cmake_config_files/CCSMASTER.config.cmake b/CMake/cmake_config_files/CCSMASTER.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/CCSMASTER.config.cmake
rename to CMake/cmake_config_files/CCSMASTER.config.cmake
diff --git a/cpu/CMake/cmake_config_files/CCS_ERLANGEN.config.cmake b/CMake/cmake_config_files/CCS_ERLANGEN.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/CCS_ERLANGEN.config.cmake
rename to CMake/cmake_config_files/CCS_ERLANGEN.config.cmake
diff --git a/cpu/CMake/cmake_config_files/COAST.config.cmake b/CMake/cmake_config_files/COAST.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/COAST.config.cmake
rename to CMake/cmake_config_files/COAST.config.cmake
diff --git a/cpu/CMake/cmake_config_files/CSE01.config.cmake b/CMake/cmake_config_files/CSE01.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/CSE01.config.cmake
rename to CMake/cmake_config_files/CSE01.config.cmake
diff --git a/cpu/CMake/cmake_config_files/ELENDUR.config.cmake b/CMake/cmake_config_files/ELENDUR.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/ELENDUR.config.cmake
rename to CMake/cmake_config_files/ELENDUR.config.cmake
diff --git a/cpu/CMake/cmake_config_files/ESLOGIN001.config.cmake b/CMake/cmake_config_files/ESLOGIN001.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/ESLOGIN001.config.cmake
rename to CMake/cmake_config_files/ESLOGIN001.config.cmake
diff --git a/cpu/CMake/cmake_config_files/ESLOGIN002.config.cmake b/CMake/cmake_config_files/ESLOGIN002.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/ESLOGIN002.config.cmake
rename to CMake/cmake_config_files/ESLOGIN002.config.cmake
diff --git a/cpu/CMake/cmake_config_files/ESLOGIN003.config.cmake b/CMake/cmake_config_files/ESLOGIN003.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/ESLOGIN003.config.cmake
rename to CMake/cmake_config_files/ESLOGIN003.config.cmake
diff --git a/cpu/CMake/cmake_config_files/ESLOGIN008.config.cmake b/CMake/cmake_config_files/ESLOGIN008.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/ESLOGIN008.config.cmake
rename to CMake/cmake_config_files/ESLOGIN008.config.cmake
diff --git a/cpu/CMake/cmake_config_files/FRWAB.config.cmake b/CMake/cmake_config_files/FRWAB.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/FRWAB.config.cmake
rename to CMake/cmake_config_files/FRWAB.config.cmake
diff --git a/cpu/CMake/cmake_config_files/FRY29.config.cmake b/CMake/cmake_config_files/FRY29.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/FRY29.config.cmake
rename to CMake/cmake_config_files/FRY29.config.cmake
diff --git a/cpu/CMake/cmake_config_files/GENIUS1.config.cmake b/CMake/cmake_config_files/GENIUS1.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/GENIUS1.config.cmake
rename to CMake/cmake_config_files/GENIUS1.config.cmake
diff --git a/cpu/CMake/cmake_config_files/GIMLI.config.cmake b/CMake/cmake_config_files/GIMLI.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/GIMLI.config.cmake
rename to CMake/cmake_config_files/GIMLI.config.cmake
diff --git a/cpu/CMake/cmake_config_files/GLOGIN1.config.cmake b/CMake/cmake_config_files/GLOGIN1.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/GLOGIN1.config.cmake
rename to CMake/cmake_config_files/GLOGIN1.config.cmake
diff --git a/cpu/CMake/cmake_config_files/GOTTFRIED.config.cmake b/CMake/cmake_config_files/GOTTFRIED.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/GOTTFRIED.config.cmake
rename to CMake/cmake_config_files/GOTTFRIED.config.cmake
diff --git a/cpu/CMake/cmake_config_files/HELM.config.cmake b/CMake/cmake_config_files/HELM.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/HELM.config.cmake
rename to CMake/cmake_config_files/HELM.config.cmake
diff --git a/cpu/CMake/cmake_config_files/HERMIT.config.cmake b/CMake/cmake_config_files/HERMIT.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/HERMIT.config.cmake
rename to CMake/cmake_config_files/HERMIT.config.cmake
diff --git a/cpu/CMake/cmake_config_files/HICEGATE0.config.cmake b/CMake/cmake_config_files/HICEGATE0.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/HICEGATE0.config.cmake
rename to CMake/cmake_config_files/HICEGATE0.config.cmake
diff --git a/cpu/CMake/cmake_config_files/HLOGIN.config.cmake b/CMake/cmake_config_files/HLOGIN.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/HLOGIN.config.cmake
rename to CMake/cmake_config_files/HLOGIN.config.cmake
diff --git a/cpu/CMake/cmake_config_files/HLOGIN1.config.cmake b/CMake/cmake_config_files/HLOGIN1.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/HLOGIN1.config.cmake
rename to CMake/cmake_config_files/HLOGIN1.config.cmake
diff --git a/cpu/CMake/cmake_config_files/HLOGIN2.config.cmake b/CMake/cmake_config_files/HLOGIN2.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/HLOGIN2.config.cmake
rename to CMake/cmake_config_files/HLOGIN2.config.cmake
diff --git a/cpu/CMake/cmake_config_files/HLOGIN3.config.cmake b/CMake/cmake_config_files/HLOGIN3.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/HLOGIN3.config.cmake
rename to CMake/cmake_config_files/HLOGIN3.config.cmake
diff --git a/cpu/CMake/cmake_config_files/HLOGIN4.config.cmake b/CMake/cmake_config_files/HLOGIN4.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/HLOGIN4.config.cmake
rename to CMake/cmake_config_files/HLOGIN4.config.cmake
diff --git a/cpu/CMake/cmake_config_files/HLRNG.config.cmake b/CMake/cmake_config_files/HLRNG.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/HLRNG.config.cmake
rename to CMake/cmake_config_files/HLRNG.config.cmake
diff --git a/cpu/CMake/cmake_config_files/HOST2.config.cmake b/CMake/cmake_config_files/HOST2.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/HOST2.config.cmake
rename to CMake/cmake_config_files/HOST2.config.cmake
diff --git a/cpu/CMake/cmake_config_files/KONRAD.config.cmake b/CMake/cmake_config_files/KONRAD.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/KONRAD.config.cmake
rename to CMake/cmake_config_files/KONRAD.config.cmake
diff --git a/cpu/CMake/cmake_config_files/KUBUNTU64.config.cmake b/CMake/cmake_config_files/KUBUNTU64.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/KUBUNTU64.config.cmake
rename to CMake/cmake_config_files/KUBUNTU64.config.cmake
diff --git a/cpu/CMake/cmake_config_files/LOGIN01.config.cmake b/CMake/cmake_config_files/LOGIN01.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/LOGIN01.config.cmake
rename to CMake/cmake_config_files/LOGIN01.config.cmake
diff --git a/cpu/CMake/cmake_config_files/LOGIN02.config.cmake b/CMake/cmake_config_files/LOGIN02.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/LOGIN02.config.cmake
rename to CMake/cmake_config_files/LOGIN02.config.cmake
diff --git a/cpu/CMake/cmake_config_files/LOGIN07.config.cmake b/CMake/cmake_config_files/LOGIN07.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/LOGIN07.config.cmake
rename to CMake/cmake_config_files/LOGIN07.config.cmake
diff --git a/cpu/CMake/cmake_config_files/LOGIN22.config.cmake b/CMake/cmake_config_files/LOGIN22.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/LOGIN22.config.cmake
rename to CMake/cmake_config_files/LOGIN22.config.cmake
diff --git a/cpu/CMake/cmake_config_files/LRR_OPTERON.config.cmake b/CMake/cmake_config_files/LRR_OPTERON.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/LRR_OPTERON.config.cmake
rename to CMake/cmake_config_files/LRR_OPTERON.config.cmake
diff --git a/cpu/CMake/cmake_config_files/LUDWIG.config.cmake b/CMake/cmake_config_files/LUDWIG.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/LUDWIG.config.cmake
rename to CMake/cmake_config_files/LUDWIG.config.cmake
diff --git a/cpu/CMake/cmake_config_files/M01.config.cmake b/CMake/cmake_config_files/M01.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/M01.config.cmake
rename to CMake/cmake_config_files/M01.config.cmake
diff --git a/cpu/CMake/cmake_config_files/M02.config.cmake b/CMake/cmake_config_files/M02.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/M02.config.cmake
rename to CMake/cmake_config_files/M02.config.cmake
diff --git a/cpu/CMake/cmake_config_files/MAFALDA.config.cmake b/CMake/cmake_config_files/MAFALDA.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/MAFALDA.config.cmake
rename to CMake/cmake_config_files/MAFALDA.config.cmake
diff --git a/cpu/CMake/cmake_config_files/PHOENIX.config.cmake b/CMake/cmake_config_files/PHOENIX.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/PHOENIX.config.cmake
rename to CMake/cmake_config_files/PHOENIX.config.cmake
diff --git a/cpu/CMake/cmake_config_files/PIPPIN.config.cmake b/CMake/cmake_config_files/PIPPIN.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/PIPPIN.config.cmake
rename to CMake/cmake_config_files/PIPPIN.config.cmake
diff --git a/cpu/CMake/cmake_config_files/SAMWEIS.config.cmake b/CMake/cmake_config_files/SAMWEIS.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/SAMWEIS.config.cmake
rename to CMake/cmake_config_files/SAMWEIS.config.cmake
diff --git a/cpu/CMake/cmake_config_files/SHELOB.config.cmake b/CMake/cmake_config_files/SHELOB.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/SHELOB.config.cmake
rename to CMake/cmake_config_files/SHELOB.config.cmake
diff --git a/cpu/CMake/cmake_config_files/SMAUG.config.cmake b/CMake/cmake_config_files/SMAUG.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/SMAUG.config.cmake
rename to CMake/cmake_config_files/SMAUG.config.cmake
diff --git a/cpu/CMake/cmake_config_files/SP0201.config.cmake b/CMake/cmake_config_files/SP0201.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/SP0201.config.cmake
rename to CMake/cmake_config_files/SP0201.config.cmake
diff --git a/cpu/CMake/cmake_config_files/SUPERMUC.config.cmake b/CMake/cmake_config_files/SUPERMUC.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/SUPERMUC.config.cmake
rename to CMake/cmake_config_files/SUPERMUC.config.cmake
diff --git a/cpu/CMake/cmake_config_files/TOLKIEN.config.cmake b/CMake/cmake_config_files/TOLKIEN.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/TOLKIEN.config.cmake
rename to CMake/cmake_config_files/TOLKIEN.config.cmake
diff --git a/cpu/CMake/cmake_config_files/TOLKIEN2.config.cmake b/CMake/cmake_config_files/TOLKIEN2.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/TOLKIEN2.config.cmake
rename to CMake/cmake_config_files/TOLKIEN2.config.cmake
diff --git a/cpu/CMake/cmake_config_files/UBUNTU.config.cmake b/CMake/cmake_config_files/UBUNTU.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/UBUNTU.config.cmake
rename to CMake/cmake_config_files/UBUNTU.config.cmake
diff --git a/cpu/CMake/cmake_config_files/YWANG.config.cmake b/CMake/cmake_config_files/YWANG.config.cmake
similarity index 100%
rename from cpu/CMake/cmake_config_files/YWANG.config.cmake
rename to CMake/cmake_config_files/YWANG.config.cmake
diff --git a/cpu/CMake/compilerflags/clang.cmake b/CMake/compilerflags/clang.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/clang.cmake
rename to CMake/compilerflags/clang.cmake
diff --git a/cpu/CMake/compilerflags/gcc33.cmake b/CMake/compilerflags/gcc33.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/gcc33.cmake
rename to CMake/compilerflags/gcc33.cmake
diff --git a/cpu/CMake/compilerflags/gcc34.cmake b/CMake/compilerflags/gcc34.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/gcc34.cmake
rename to CMake/compilerflags/gcc34.cmake
diff --git a/cpu/CMake/compilerflags/gcc40.cmake b/CMake/compilerflags/gcc40.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/gcc40.cmake
rename to CMake/compilerflags/gcc40.cmake
diff --git a/cpu/CMake/compilerflags/gcc41.cmake b/CMake/compilerflags/gcc41.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/gcc41.cmake
rename to CMake/compilerflags/gcc41.cmake
diff --git a/cpu/CMake/compilerflags/gcc42.cmake b/CMake/compilerflags/gcc42.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/gcc42.cmake
rename to CMake/compilerflags/gcc42.cmake
diff --git a/cpu/CMake/compilerflags/gcc43.cmake b/CMake/compilerflags/gcc43.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/gcc43.cmake
rename to CMake/compilerflags/gcc43.cmake
diff --git a/cpu/CMake/compilerflags/gcc44.cmake b/CMake/compilerflags/gcc44.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/gcc44.cmake
rename to CMake/compilerflags/gcc44.cmake
diff --git a/cpu/CMake/compilerflags/gcc45.cmake b/CMake/compilerflags/gcc45.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/gcc45.cmake
rename to CMake/compilerflags/gcc45.cmake
diff --git a/cpu/CMake/compilerflags/gcc46.cmake b/CMake/compilerflags/gcc46.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/gcc46.cmake
rename to CMake/compilerflags/gcc46.cmake
diff --git a/cpu/CMake/compilerflags/gcc47.cmake b/CMake/compilerflags/gcc47.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/gcc47.cmake
rename to CMake/compilerflags/gcc47.cmake
diff --git a/cpu/CMake/compilerflags/gcc48.cmake b/CMake/compilerflags/gcc48.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/gcc48.cmake
rename to CMake/compilerflags/gcc48.cmake
diff --git a/cpu/CMake/compilerflags/gcc49.cmake b/CMake/compilerflags/gcc49.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/gcc49.cmake
rename to CMake/compilerflags/gcc49.cmake
diff --git a/cpu/CMake/compilerflags/gcc51.cmake b/CMake/compilerflags/gcc51.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/gcc51.cmake
rename to CMake/compilerflags/gcc51.cmake
diff --git a/cpu/CMake/compilerflags/gcc52.cmake b/CMake/compilerflags/gcc52.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/gcc52.cmake
rename to CMake/compilerflags/gcc52.cmake
diff --git a/cpu/CMake/compilerflags/gcc54.cmake b/CMake/compilerflags/gcc54.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/gcc54.cmake
rename to CMake/compilerflags/gcc54.cmake
diff --git a/cpu/CMake/compilerflags/gcc62.cmake b/CMake/compilerflags/gcc62.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/gcc62.cmake
rename to CMake/compilerflags/gcc62.cmake
diff --git a/cpu/CMake/compilerflags/gcc63.cmake b/CMake/compilerflags/gcc63.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/gcc63.cmake
rename to CMake/compilerflags/gcc63.cmake
diff --git a/cpu/CMake/compilerflags/gcc82.cmake b/CMake/compilerflags/gcc82.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/gcc82.cmake
rename to CMake/compilerflags/gcc82.cmake
diff --git a/cpu/CMake/compilerflags/gccGeneric.cmake b/CMake/compilerflags/gccGeneric.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/gccGeneric.cmake
rename to CMake/compilerflags/gccGeneric.cmake
diff --git a/cpu/CMake/compilerflags/icc101.cmake b/CMake/compilerflags/icc101.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/icc101.cmake
rename to CMake/compilerflags/icc101.cmake
diff --git a/cpu/CMake/compilerflags/icc130.cmake b/CMake/compilerflags/icc130.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/icc130.cmake
rename to CMake/compilerflags/icc130.cmake
diff --git a/cpu/CMake/compilerflags/icc140.cmake b/CMake/compilerflags/icc140.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/icc140.cmake
rename to CMake/compilerflags/icc140.cmake
diff --git a/cpu/CMake/compilerflags/icc150.cmake b/CMake/compilerflags/icc150.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/icc150.cmake
rename to CMake/compilerflags/icc150.cmake
diff --git a/cpu/CMake/compilerflags/icc160.cmake b/CMake/compilerflags/icc160.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/icc160.cmake
rename to CMake/compilerflags/icc160.cmake
diff --git a/cpu/CMake/compilerflags/icc170.cmake b/CMake/compilerflags/icc170.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/icc170.cmake
rename to CMake/compilerflags/icc170.cmake
diff --git a/cpu/CMake/compilerflags/icc180.cmake b/CMake/compilerflags/icc180.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/icc180.cmake
rename to CMake/compilerflags/icc180.cmake
diff --git a/cpu/CMake/compilerflags/icc190.cmake b/CMake/compilerflags/icc190.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/icc190.cmake
rename to CMake/compilerflags/icc190.cmake
diff --git a/cpu/CMake/compilerflags/icc91.cmake b/CMake/compilerflags/icc91.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/icc91.cmake
rename to CMake/compilerflags/icc91.cmake
diff --git a/cpu/CMake/compilerflags/msvc10_32.cmake b/CMake/compilerflags/msvc10_32.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/msvc10_32.cmake
rename to CMake/compilerflags/msvc10_32.cmake
diff --git a/cpu/CMake/compilerflags/msvc10_64.cmake b/CMake/compilerflags/msvc10_64.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/msvc10_64.cmake
rename to CMake/compilerflags/msvc10_64.cmake
diff --git a/cpu/CMake/compilerflags/msvc11_32.cmake b/CMake/compilerflags/msvc11_32.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/msvc11_32.cmake
rename to CMake/compilerflags/msvc11_32.cmake
diff --git a/cpu/CMake/compilerflags/msvc11_64.cmake b/CMake/compilerflags/msvc11_64.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/msvc11_64.cmake
rename to CMake/compilerflags/msvc11_64.cmake
diff --git a/cpu/CMake/compilerflags/msvc12_32.cmake b/CMake/compilerflags/msvc12_32.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/msvc12_32.cmake
rename to CMake/compilerflags/msvc12_32.cmake
diff --git a/cpu/CMake/compilerflags/msvc12_64.cmake b/CMake/compilerflags/msvc12_64.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/msvc12_64.cmake
rename to CMake/compilerflags/msvc12_64.cmake
diff --git a/cpu/CMake/compilerflags/msvc14_32.cmake b/CMake/compilerflags/msvc14_32.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/msvc14_32.cmake
rename to CMake/compilerflags/msvc14_32.cmake
diff --git a/cpu/CMake/compilerflags/msvc14_64.cmake b/CMake/compilerflags/msvc14_64.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/msvc14_64.cmake
rename to CMake/compilerflags/msvc14_64.cmake
diff --git a/cpu/CMake/compilerflags/msvc19_64.cmake b/CMake/compilerflags/msvc19_64.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/msvc19_64.cmake
rename to CMake/compilerflags/msvc19_64.cmake
diff --git a/cpu/CMake/compilerflags/msvc8_32.cmake b/CMake/compilerflags/msvc8_32.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/msvc8_32.cmake
rename to CMake/compilerflags/msvc8_32.cmake
diff --git a/cpu/CMake/compilerflags/msvc8_64.cmake b/CMake/compilerflags/msvc8_64.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/msvc8_64.cmake
rename to CMake/compilerflags/msvc8_64.cmake
diff --git a/cpu/CMake/compilerflags/msvc9_32.cmake b/CMake/compilerflags/msvc9_32.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/msvc9_32.cmake
rename to CMake/compilerflags/msvc9_32.cmake
diff --git a/cpu/CMake/compilerflags/msvc9_64.cmake b/CMake/compilerflags/msvc9_64.cmake
similarity index 100%
rename from cpu/CMake/compilerflags/msvc9_64.cmake
rename to CMake/compilerflags/msvc9_64.cmake
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 29c9611b63466464f2672cc982688a4d8b6ee3ee..dc6c3146ca31d008f6eeccb16284d36743559891 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,14 +6,15 @@ endif()
 
 project(VirtualFluids CXX)
 
+set (CMAKE_PATH "${CMAKE_SOURCE_DIR}/CMake")
 
-option(BUILD_VF_CPU "Build VirtualFluids cpu variant" ON)
-option(BUILD_VF_GPU "Build VirtualFluids gpu variant" OFF)
+option(BUILD_VF_CPU "Build VirtualFluids cpu variant" OFF)
+option(BUILD_VF_GPU "Build VirtualFluids gpu variant" ON)
 
 
-if (BUILD_VF_CPU)
-    add_subdirectory(cpu)
-endif()
-if(BUILD_VF_GPU)
+#if (BUILD_VF_CPU)
+#    add_subdirectory(cpu)
+#endif()
+#if(BUILD_VF_GPU)
     add_subdirectory(gpu)
-endif()
+#endif()
diff --git a/cpu/Applications/Applications.cmake b/cpu/Applications/Applications.cmake
index 79fae3a86eb05be2897d0bc23dde2e3f71f7bb57..e6c6bc0d8923b614ab48e005ffc38c0244d36dc8 100644
--- a/cpu/Applications/Applications.cmake
+++ b/cpu/Applications/Applications.cmake
@@ -12,7 +12,7 @@
 # add_subdirectory(Applications/plate)
 # add_subdirectory(Applications/plate2)
 ##add_subdirectory(Applications/FlowAroundCylinder)
-##add_subdirectory(Applications/LaminarTubeFlow)
+add_subdirectory(Applications/LaminarTubeFlow)
 # add_subdirectory(Applications/LaminarTubeFlowConv)
 #add_subdirectory(Applications/cylinderSt)
 #add_subdirectory(Applications/mpichTest)
@@ -41,7 +41,7 @@
 # add_subdirectory(Applications/BeadPack)
 # add_subdirectory(Applications/town)
 ##add_subdirectory(Applications/perm)
-add_subdirectory(Applications/pChannel)
+#add_subdirectory(Applications/pChannel)
 #add_subdirectory(Applications/pDisk)
 #add_subdirectory(Applications/BoxBenchmark)
 #add_subdirectory(Applications/DHIT)
diff --git a/cpu/Applications/IncludsList.cmake b/cpu/Applications/IncludsList.cmake
index c0479fc3afb94c32a554b54ecfe6674e796ebd94..811c04789adfaadf74fd67175ba84ed1fdb42cb7 100644
--- a/cpu/Applications/IncludsList.cmake
+++ b/cpu/Applications/IncludsList.cmake
@@ -1,3 +1,3 @@
 INCLUDE_DIRECTORIES(${APPS_ROOT})
-INCLUDE(${SOURCE_ROOT}/VirtualFluidsBasic/IncludsList.cmake)
-INCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/IncludsList.cmake) 
+INCLUDE(${SOURCE_DIR}/VirtualFluidsBasic/IncludsList.cmake)
+INCLUDE(${SOURCE_DIR}/VirtualFluidsCore/IncludsList.cmake)
diff --git a/cpu/Applications/LaminarTubeFlow/CMakeLists.txt b/cpu/Applications/LaminarTubeFlow/CMakeLists.txt
index ab7d30c95c3264d86b2609ce33a8b0911fef8167..5cd39efdad333020aea6aa0bc02fe21921aa3a5e 100644
--- a/cpu/Applications/LaminarTubeFlow/CMakeLists.txt
+++ b/cpu/Applications/LaminarTubeFlow/CMakeLists.txt
@@ -10,16 +10,19 @@ INCLUDE(${APPS_ROOT}/IncludsList.cmake)
 #################################################################
 ###   LOCAL FILES                                             ###
 #################################################################
-FILE(GLOB SPECIFIC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.h
-                         ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
-                         ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp  )
+#FILE(GLOB SPECIFIC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.h
+ #                        ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
+  #                       ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp  )
  
-SET(ALL_SOURCES ${ALL_SOURCES} ${SPECIFIC_FILES})
-SOURCE_GROUP(src FILES ${SPECIFIC_FILES})
+#SET(ALL_SOURCES ${ALL_SOURCES} ${SPECIFIC_FILES})
+#SOURCE_GROUP(src FILES ${SPECIFIC_FILES})
   
-SET(CAB_ADDITIONAL_LINK_LIBRARIES VirtualFluids)
+#SET(CAB_ADDITIONAL_LINK_LIBRARIES VirtualFluids)
 
 #################################################################
 ###   CREATE PROJECT                                          ###
 #################################################################
-CREATE_CAB_PROJECT(ltf BINARY)
+#CREATE_CAB_PROJECT(ltf BINARY)
+
+
+vf_add_library(BUILDTYPE binary DEPENDS VirtualFluidsCore VirtualFluidsBasic FILES ltf.cpp)
diff --git a/cpu/Applications/LaminarTubeFlow/ltf.cpp b/cpu/Applications/LaminarTubeFlow/ltf.cpp
index d295724f546f5fac530a5f307465ab97101b0837..d13320cc4784753e7b71ecd13935dd7e664fc30c 100644
--- a/cpu/Applications/LaminarTubeFlow/ltf.cpp
+++ b/cpu/Applications/LaminarTubeFlow/ltf.cpp
@@ -1,5 +1,6 @@
 #include <iostream>
 #include <string>
+#include <omp.h>
 
 #include "VirtualFluids.h"
 
@@ -299,7 +300,8 @@ void run(string configname)
       SPtr<UbScheduler> nupsSch(new UbScheduler(100, 100, 100000000));
       SPtr<CoProcessor> npr(new NUPSCounterCoProcessor(grid, nupsSch, numOfThreads, comm));
 
-      omp_set_num_threads(numOfThreads);
+      //omp_set_num_threads(numOfThreads);
+      numOfThreads = 1;
       SPtr<UbScheduler> stepGhostLayer(visSch);
       SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, endTime));
       calculator->addCoProcessor(npr);
diff --git a/cpu/Applications/LidDrivenCavity/CMakeLists.txt b/cpu/Applications/LidDrivenCavity/CMakeLists.txt
index 2c2df66d397b6277bc0c73c6970222ae49578d55..cf76ed91b770c41224313329914517b2925ecd57 100644
--- a/cpu/Applications/LidDrivenCavity/CMakeLists.txt
+++ b/cpu/Applications/LidDrivenCavity/CMakeLists.txt
@@ -1,25 +1,27 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
+#CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
 
 ########################################################
 ## C++ PROJECT                                       ###
 ########################################################
-PROJECT(LidDrivenCavity)
+#PROJECT(LidDrivenCavity)
 
 INCLUDE(${APPS_ROOT}/IncludsList.cmake) 
 
 #################################################################
 ###   LOCAL FILES                                             ###
 #################################################################
-FILE(GLOB SPECIFIC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.h
-                         ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
-                         ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp  )
+#FILE(GLOB SPECIFIC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.h
+ #                        ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
+ #                        ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp  )
  
-SET(ALL_SOURCES ${ALL_SOURCES} ${SPECIFIC_FILES})
-SOURCE_GROUP(src FILES ${SPECIFIC_FILES})
+#SET(ALL_SOURCES ${ALL_SOURCES} ${SPECIFIC_FILES})
+#SOURCE_GROUP(src FILES ${SPECIFIC_FILES})
   
-SET(CAB_ADDITIONAL_LINK_LIBRARIES VirtualFluids)
+#SET(CAB_ADDITIONAL_LINK_LIBRARIES VirtualFluids)
 
 #################################################################
 ###   CREATE PROJECT                                          ###
 #################################################################
-CREATE_CAB_PROJECT(LidDrivenCavity BINARY)
+#CREATE_CAB_PROJECT(LidDrivenCavity BINARY)
+
+vf_add_library(BUILDTYPE binary DEPENDS VirtualFluidsCore VirtualFluidsBasic FILES LidDrivenCavity.cpp)
diff --git a/cpu/Applications/pChannel/CMakeLists.txt b/cpu/Applications/pChannel/CMakeLists.txt
index f909c9146d9b6ec626b510dbe43a34742ac3911e..c39cc238bb757edcfd5ebae5b6f4c6f05ef2dae7 100644
--- a/cpu/Applications/pChannel/CMakeLists.txt
+++ b/cpu/Applications/pChannel/CMakeLists.txt
@@ -1,7 +1,6 @@
 ########################################################
 ## C++ PROJECT                                       ###
 ########################################################
-PROJECT(pchannel)
 
 INCLUDE(${APPS_ROOT}/IncludsList.cmake) 
 
diff --git a/cpu/CMakeLists.txt b/cpu/CMakeLists.txt
index 1441c0f21057528cac6d982cf3a2857f024684f8..1cee551cadc2ea6938f759888c18352a1cb7970a 100644
--- a/cpu/CMakeLists.txt
+++ b/cpu/CMakeLists.txt
@@ -20,7 +20,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.10)
 #set(CMAKE_CXX_COMPILER mpiCC)
 
 PROJECT(VirtualFluids)
-
+set (SOURCE_DIR ${PROJECT_SOURCE_DIR})
 set(SOURCE_ROOT "../source")
 
 #debug build for unix
@@ -42,7 +42,9 @@ SET(USE_HLRN_LUSTRE OFF CACHE BOOL "include HLRN Lustre support")
 SET(USE_DEM_COUPLING OFF CACHE BOOL "PE plugin")
 
 #CAB
-INCLUDE("CMake/CMakeCABMacros.cmake")
+include("../CMake/CMakeCABMacros.cmake")
+include("../CMake/FileUtilities.cmake")
+include("../CMake/VirtualFluidsMacros.cmake")
 
 #MPI
 IF((NOT ${CMAKE_CXX_COMPILER} MATCHES mpicxx) AND (NOT ${CMAKE_CXX_COMPILER} MATCHES mpiicpc))# OR NOT ${CMAKE_CXX_COMPILER} MATCHES cc OR NOT ${CMAKE_CXX_COMPILER} MATCHES mpiCC)
@@ -157,13 +159,11 @@ ENDIF()
 #    add_subdirectory(Plugins/dem_coupling)
 #ENDIF()
 
-include (${PROJECT_SOURCE_DIR}/CMake/VirtualFluidsMacros.cmake)
-
 add_subdirectory(ThirdParty/MuParser)
 
 add_subdirectory(VirtualFluidsCore)
 add_subdirectory(VirtualFluidsBasic)
 
-set(APPS_ROOT "${SOURCE_ROOT}/Applications")
+set(APPS_ROOT "${SOURCE_ROOT}/cpu/Applications")
 INCLUDE(${APPS_ROOT}/Applications.cmake)
 
diff --git a/cpu/VirtualFluidsBasic/CMakeLists.txt b/cpu/VirtualFluidsBasic/CMakeLists.txt
index ea3869ed730010820b5a9bd1225199a4ea33ada5..5de240a74dc3cfd7a157f802007812be5d4ea5d9 100644
--- a/cpu/VirtualFluidsBasic/CMakeLists.txt
+++ b/cpu/VirtualFluidsBasic/CMakeLists.txt
@@ -1,5 +1,5 @@
 
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic)
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_LIST_DIR})
 INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/numerics/geometry3d)
 INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/numerics/geometry3d/Creator)
 INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/numerics/geometry3d/KdTree)
@@ -11,11 +11,11 @@ INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/basics/utilities)
 INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/basics/writer)
 
 
-include (${PROJECT_SOURCE_DIR}/CMake/VirtualFluidsMacros.cmake)
+include (${CMAKE_SOURCE_DIR}/CMake/VirtualFluidsMacros.cmake)
 #message (${MPI_LIBRARY})
 SET(CAB_ADDITIONAL_LINK_LIBRARIES ${MPI_LIBRARY})
 
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsCore)
+INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/VirtualFluidsCore)
 INCLUDE_DIRECTORIES(${MPI_INCLUDE_PATH})
 
 vf_add_library(BUILDTYPE static
diff --git a/cpu/VirtualFluidsBasic/IncludsList.cmake b/cpu/VirtualFluidsBasic/IncludsList.cmake
index 4b253c0ebee64fa4f4ae002f9a70601fd397c7f5..e030b38570a6c42678ff812749084388de9c1026 100644
--- a/cpu/VirtualFluidsBasic/IncludsList.cmake
+++ b/cpu/VirtualFluidsBasic/IncludsList.cmake
@@ -1,10 +1,10 @@
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic)
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/numerics/geometry3d)
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/numerics/geometry3d/Creator)
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/numerics/geometry3d/KdTree)
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/basics/container)
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/basics/memory)
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/basics/objects)
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/basics/transmiitter)
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/basics/utilities)
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/basics/writer)
\ No newline at end of file
+INCLUDE_DIRECTORIES(${SOURCE_DIR}/VirtualFluidsBasic)
+INCLUDE_DIRECTORIES(${SOURCE_DIR}/VirtualFluidsBasic/numerics/geometry3d)
+INCLUDE_DIRECTORIES(${SOURCE_DIR}/VirtualFluidsBasic/numerics/geometry3d/Creator)
+INCLUDE_DIRECTORIES(${SOURCE_DIR}/VirtualFluidsBasic/numerics/geometry3d/KdTree)
+INCLUDE_DIRECTORIES(${SOURCE_DIR}/VirtualFluidsBasic/basics/container)
+INCLUDE_DIRECTORIES(${SOURCE_DIR}/VirtualFluidsBasic/basics/memory)
+INCLUDE_DIRECTORIES(${SOURCE_DIR}/VirtualFluidsBasic/basics/objects)
+INCLUDE_DIRECTORIES(${SOURCE_DIR}/VirtualFluidsBasic/basics/transmiitter)
+INCLUDE_DIRECTORIES(${SOURCE_DIR}/VirtualFluidsBasic/basics/utilities)
+INCLUDE_DIRECTORIES(${SOURCE_DIR}/VirtualFluidsBasic/basics/writer)
\ No newline at end of file
diff --git a/cpu/VirtualFluidsCore/CMakeLists.txt b/cpu/VirtualFluidsCore/CMakeLists.txt
index ab8cf77136034662fa0fb41879d29690faf91e95..91f4544c717ef9dd21a862abece41cbf53ef8677 100644
--- a/cpu/VirtualFluidsCore/CMakeLists.txt
+++ b/cpu/VirtualFluidsCore/CMakeLists.txt
@@ -2,7 +2,7 @@
 #################################################################
 ###   PACKAGES						                          ###
 #################################################################
-SET(WITH_SUBFOLDERS_FOR_SG TRUE)
+#SET(WITH_SUBFOLDERS_FOR_SG TRUE)
 
 #INCLUDE(${SOURCE_ROOT}/ThirdParty/MuParser/CMakePackage.txt)
 
@@ -23,10 +23,10 @@ SET(WITH_SUBFOLDERS_FOR_SG TRUE)
 
 #FETOL
 IF(${USE_FETOL})
-INCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/FETOL/CMakePackage.txt)
+INCLUDE(${SOURCE_DIR}/VirtualFluidsCore/FETOL/CMakePackage.txt)
 ENDIF()
 
-INCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/IncludsList.cmake)
+INCLUDE(${CMAKE_CURRENT_LIST_DIR}/IncludsList.cmake)
 
 #SET(CAB_ADDITIONAL_LINK_LIBRARIES muParserLib ${Boost_LIBRARIES} ${MPI_LIBRARY})
 SET(CAB_ADDITIONAL_LINK_LIBRARIES ${MPI_LIBRARY})
@@ -93,18 +93,18 @@ message("CAB_ADDITIONAL_LINK_LIBRARIES: " ${CAB_ADDITIONAL_LINK_LIBRARIES})
 ###   CREATE PROJECT                                          ###
 #################################################################
 #CREATE_CAB_PROJECT(VirtualFluids STATIC)
-include (${PROJECT_SOURCE_DIR}/CMake/VirtualFluidsMacros.cmake)
+include (${CMAKE_SOURCE_DIR}/CMake/VirtualFluidsMacros.cmake)
 
 vf_add_library(BUILDTYPE static DEPENDS VirtualFluidsBasic MuParser)
 
 vf_get_library_name(library_name)
-target_include_directories(${library_name} PRIVATE ${SOURCE_ROOT}/VirtualFluidsBasic)
-target_include_directories(${library_name} PRIVATE ${SOURCE_ROOT}/VirtualFluidsBasic/numerics/geometry3d)
-target_include_directories(${library_name} PRIVATE ${SOURCE_ROOT}/VirtualFluidsBasic/numerics/geometry3d/Creator)
-target_include_directories(${library_name} PRIVATE ${SOURCE_ROOT}/VirtualFluidsBasic/numerics/geometry3d/KdTree)
-target_include_directories(${library_name} PRIVATE ${SOURCE_ROOT}/VirtualFluidsBasic/basics/container)
-target_include_directories(${library_name} PRIVATE ${SOURCE_ROOT}/VirtualFluidsBasic/basics/memory)
-target_include_directories(${library_name} PRIVATE ${SOURCE_ROOT}/VirtualFluidsBasic/basics/objects)
-target_include_directories(${library_name} PRIVATE ${SOURCE_ROOT}/VirtualFluidsBasic/basics/transmiitter)
-target_include_directories(${library_name} PRIVATE ${SOURCE_ROOT}/VirtualFluidsBasic/basics/utilities)
-target_include_directories(${library_name} PRIVATE ${SOURCE_ROOT}/VirtualFluidsBasic/basics/writer)
+target_include_directories(${library_name} PRIVATE ${SOURCE_DIR}/VirtualFluidsBasic)
+target_include_directories(${library_name} PRIVATE ${SOURCE_DIR}/VirtualFluidsBasic/numerics/geometry3d)
+target_include_directories(${library_name} PRIVATE ${SOURCE_DIR}/VirtualFluidsBasic/numerics/geometry3d/Creator)
+target_include_directories(${library_name} PRIVATE ${SOURCE_DIR}/VirtualFluidsBasic/numerics/geometry3d/KdTree)
+target_include_directories(${library_name} PRIVATE ${SOURCE_DIR}/VirtualFluidsBasic/basics/container)
+target_include_directories(${library_name} PRIVATE ${SOURCE_DIR}/VirtualFluidsBasic/basics/memory)
+target_include_directories(${library_name} PRIVATE ${SOURCE_DIR}/VirtualFluidsBasic/basics/objects)
+target_include_directories(${library_name} PRIVATE ${SOURCE_DIR}/VirtualFluidsBasic/basics/transmiitter)
+target_include_directories(${library_name} PRIVATE ${SOURCE_DIR}/VirtualFluidsBasic/basics/utilities)
+target_include_directories(${library_name} PRIVATE ${SOURCE_DIR}/VirtualFluidsBasic/basics/writer)
diff --git a/cpu/VirtualFluidsCore/IncludsList.cmake b/cpu/VirtualFluidsCore/IncludsList.cmake
index 7c29bdca98e6f16e981a30b9d55be290f0d5bc26..3462a588e3264c0d26df0feee996193ea24acee8 100644
--- a/cpu/VirtualFluidsCore/IncludsList.cmake
+++ b/cpu/VirtualFluidsCore/IncludsList.cmake
@@ -1,18 +1,18 @@
 #directory pathes for header files
 
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsCore)
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsCore/BoundaryConditions)
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsCore/Connectors)
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsCore/Data)
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsCore/Interactors)
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsCore/LBM)
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsCore/Parallel)
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsCore/Grid)
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsCore/Visitors)
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsCore/CoProcessors)
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsCore/Utilities)
+INCLUDE_DIRECTORIES(${SOURCE_DIR}/VirtualFluidsCore)
+INCLUDE_DIRECTORIES(${SOURCE_DIR}/VirtualFluidsCore/BoundaryConditions)
+INCLUDE_DIRECTORIES(${SOURCE_DIR}/VirtualFluidsCore/Connectors)
+INCLUDE_DIRECTORIES(${SOURCE_DIR}/VirtualFluidsCore/Data)
+INCLUDE_DIRECTORIES(${SOURCE_DIR}/VirtualFluidsCore/Interactors)
+INCLUDE_DIRECTORIES(${SOURCE_DIR}/VirtualFluidsCore/LBM)
+INCLUDE_DIRECTORIES(${SOURCE_DIR}/VirtualFluidsCore/Parallel)
+INCLUDE_DIRECTORIES(${SOURCE_DIR}/VirtualFluidsCore/Grid)
+INCLUDE_DIRECTORIES(${SOURCE_DIR}/VirtualFluidsCore/Visitors)
+INCLUDE_DIRECTORIES(${SOURCE_DIR}/VirtualFluidsCore/CoProcessors)
+INCLUDE_DIRECTORIES(${SOURCE_DIR}/VirtualFluidsCore/Utilities)
 
-INCLUDE_DIRECTORIES(${SOURCE_ROOT}/ThirdParty)
+INCLUDE_DIRECTORIES(${SOURCE_DIR}/ThirdParty)
 
 IF(${USE_BOOST})
    INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
@@ -25,7 +25,7 @@ IF(${USE_VTK})
     INCLUDE_DIRECTORIES(${VTK_INCLUDE_DIRS})
 ENDIF()
 IF(${USE_FETOL})
-    INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsCore/FETOL)
+    INCLUDE_DIRECTORIES(${SOURCE_DIR}/VirtualFluidsCore/FETOL)
     INCLUDE_DIRECTORIES(${YAML_INCLUDEDIR})
     INCLUDE_DIRECTORIES(${BOND_INCLUDEDIR})
     INCLUDE_DIRECTORIES(${FETOL_INCLUDEDIR})
diff --git a/gpu/CMakeLists.txt b/gpu/CMakeLists.txt
index 97a5c89d7447a17e8a45d5e00dca66c8cafdfeb7..d12c3aeefe74caba1110089282ea5c3876b1ed25 100644
--- a/gpu/CMakeLists.txt
+++ b/gpu/CMakeLists.txt
@@ -31,15 +31,20 @@ endif()
 ###                     ENVIRONMENT                       ###
 #############################################################
 set(cmakeMacroPath "CMakeMacros")
-include(${cmakeMacroPath}/Environment/environment.cmake)
+#include(${cmakeMacroPath}/Environment/environment.cmake)
+
+#CAB
+include("../CMake/CMakeCABMacros.cmake")
+include("../CMake/FileUtilities.cmake")
+include("../CMake/VirtualFluidsMacros.cmake")
 
 #############################################################
 ###                   GENERAL MACROS                      ###
 #############################################################
-include(${CMAKE_SOURCE_DIR}/${cmakeMacroPath}/general/BuildTarget.cmake)
-include(${CMAKE_SOURCE_DIR}/${cmakeMacroPath}/general/BuildTargetUtilities.cmake)
-include(${CMAKE_SOURCE_DIR}/${cmakeMacroPath}/general/EndingsToCollect.cmake)
-include(${CMAKE_SOURCE_DIR}/${cmakeMacroPath}/general/FileUtilities.cmake)
+#include(${CMAKE_SOURCE_DIR}/${cmakeMacroPath}/general/BuildTarget.cmake)
+#include(${CMAKE_SOURCE_DIR}/${cmakeMacroPath}/general/BuildTargetUtilities.cmake)
+#include(${CMAKE_SOURCE_DIR}/${cmakeMacroPath}/general/EndingsToCollect.cmake)
+#include(${CMAKE_SOURCE_DIR}/${cmakeMacroPath}/general/FileUtilities.cmake)
 
 #############################################################
 ###                   PROJECT SETTINGS                    ###
@@ -49,7 +54,7 @@ project(VirtualFluidsGPU)
 
 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
 set(CMAKE_INCLUDE_CURRENT_DIR ON)
-include_directories(${CMAKE_BINARY_DIR})
+include_directories(${CMAKE_BINARY_DIR}/gpu)
 
 set_property(GLOBAL PROPERTY USE_FOLDERS ON)
 set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER ".cmake")
@@ -77,8 +82,8 @@ ENDIF(MSVC)
 ###                         OPTIONS                       ###
 #############################################################
 option(BUILD_SHARED_LIBS        "Build shared libraries"      ON )
-option(VF.BUILD_VF_GPU          "Build VirtualFluids GPU"     ON )
-option(VF.BUILD_VF_GKS          "Build VirtualFluids GKS"     ON )
+option(VF.BUILD_VF_GPU          "Build VirtualFluids GPU"     OFF )
+option(VF.BUILD_VF_GKS          "Build VirtualFluids GKS"     OFF )
 option(VF.BUILD_VF_TRAFFIC      "Build VirtualFluids Traffic" OFF)
 option(VF.BUILD_JSONCPP         "Builds json cpp "            OFF)
 option(VF.BUILD_NUMERIC_TESTS   "Build numeric tests"         OFF)
@@ -91,18 +96,18 @@ ENDIF()
 
 #############################################################
 
-enable_language(CUDA)
+#enable_language(CUDA)
 
-sharedLibs()
+#sharedLibs()
 
 #############################################################
 
-include(${CMAKE_SOURCE_DIR}/${cmakeMacroPath}/general/FindCompiler.cmake)
+include(${CMAKE_SOURCE_DIR}/gpu/${cmakeMacroPath}/general/FindCompiler.cmake)
 configure_file(src/VirtualFluidsDefinitions.in.h VirtualFluidsDefinitions.h)
 if(MSVC)
-    SET( CMAKE_CXX_FLAGS "/FI${CMAKE_BINARY_DIR}/VirtualFluidsDefinitions.h ${CMAKE_CXX_FLAGS}" )
+    SET( CMAKE_CXX_FLAGS "/FI${CMAKE_BINARY_DIR}/gpu/VirtualFluidsDefinitions.h ${CMAKE_CXX_FLAGS}" )
 ELSE(MSVC)
-    SET( CMAKE_CXX_FLAGS "-include ${CMAKE_BINARY_DIR}/VirtualFluidsDefinitions.h ${CMAKE_CXX_FLAGS}" )
+    SET( CMAKE_CXX_FLAGS "-include ${CMAKE_BINARY_DIR}/gpu/VirtualFluidsDefinitions.h ${CMAKE_CXX_FLAGS}" )
 ENDIF(MSVC)
 
 IF( VF.BUILD_VF_GKS )
@@ -121,10 +126,10 @@ set(CMAKE_CUDA_FLAGS_DEBUG " -G" CACHE STRING "" FORCE)
 ###                  Core                                 ###
 #############################################################
 
-add_subdirectory(targets/libs/VirtualFluidsBasics)
-add_subdirectory(targets/libs/Core)
+#add_subdirectory(targets/libs/VirtualFluidsBasics)
+add_subdirectory(src/core)
 
-add_subdirectory(targets/libs/GridGenerator)
+#add_subdirectory(targets/libs/GridGenerator)
 #add_subdirectory(3rdParty/metis/metis-5.1.0)
 
 #############################################################
diff --git a/gpu/CMakeMacros/MPI/Link.cmake b/gpu/CMakeMacros/MPI/Link.cmake
deleted file mode 100644
index b1a7f100ef5676d4c77c57ad66c73d3184088e72..0000000000000000000000000000000000000000
--- a/gpu/CMakeMacros/MPI/Link.cmake
+++ /dev/null
@@ -1,8 +0,0 @@
-macro(linkMPI targetName)
-
-	find_package(MPI REQUIRED)
-	include_directories(${MPI_C_INCLUDE_PATH})
-
-	target_link_libraries(${targetName} ${MPI_C_LIBRARIES})
-
-endmacro(linkMPI)
diff --git a/gpu/src/Core/Logger/Logger.cpp b/gpu/src/Core/Logger/Logger.cpp
index 7b7de54c97b29bf9b88de39e38d3fd73e7a0eddc..95c577bfd1f3d1a42fdeaa9650e4bbe51f8cf098 100644
--- a/gpu/src/Core/Logger/Logger.cpp
+++ b/gpu/src/Core/Logger/Logger.cpp
@@ -1,5 +1,5 @@
 #include "Logger.h"
-#include "mpi.h"
+//#include "mpi.h"
 #include <memory>
 #include <iostream>
 
diff --git a/gpu/targets/libs/Core/buildInfo.cmake b/gpu/src/Core/buildInfo.cmake
similarity index 68%
rename from gpu/targets/libs/Core/buildInfo.cmake
rename to gpu/src/Core/buildInfo.cmake
index 4dd877bae6ea37f375bd49bc1b2d8c6236d69dfc..44935fedbd198a5d783d1cf32a15985e50d13f8c 100644
--- a/gpu/targets/libs/Core/buildInfo.cmake
+++ b/gpu/src/Core/buildInfo.cmake
@@ -1,17 +1,16 @@
 set(buildInfoPath ${CMAKE_BINARY_DIR}/buildInfo)
 set(buildInfoFile buildInfo.cpp)
-#set(buildInfoFileHeader buildInfo.h)
-set(buildInfoInput ${CMAKE_CURRENT_LIST_DIR}/buildInfoInput/buildInfo.in.cpp)
+set(buildInfoInput ${CMAKE_CURRENT_LIST_DIR}/buildInfo.in.cpp)
 
-include(${CMAKE_SOURCE_DIR}/${cmakeMacroPath}/git/GetGitRevisionDescription.cmake)
+include(${CMAKE_PATH}/3rd/git/GetGitRevisionDescription.cmake)
 get_git_head_revision(git_branch git_commit_hash)
 
 set(COMPILER_FLAGS "${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}} ${CMAKE_CXX_FLAGS}")
 
 configure_file(${buildInfoInput} ${buildInfoPath}/${buildInfoFile})
-
+message ("buildInfoPath: ${buildInfoPath}")
 include_directories(${buildInfoPath})
 #set(MY_SRCS ${MY_SRCS} ${buildInfoPath}/${buildInfoFile} ${CMAKE_CURRENT_LIST_DIR}/${buildInfoFileHeader})
-set(MY_SRCS ${MY_SRCS} ${buildInfoPath}/${buildInfoFile})
+set(sourceFiles ${sourceFiles} ${buildInfoPath}/${buildInfoFile})
 source_group("" FILES  ${buildInfoPath}/${buildInfoFile})
 #source_group("" FILES  ${CMAKE_CURRENT_LIST_DIR}/${buildInfoFileHeader})
\ No newline at end of file
diff --git a/gpu/targets/libs/Core/buildInfoInput/buildInfo.in.cpp b/gpu/src/Core/buildInfo.in.cpp
similarity index 100%
rename from gpu/targets/libs/Core/buildInfoInput/buildInfo.in.cpp
rename to gpu/src/Core/buildInfo.in.cpp