diff --git a/gpu.cmake b/gpu.cmake
index 0370b3f19189843331e411f4881e141dff887455..79d1a3aca9f7e3f5b58d2b4c837cd66d2e2bf5ed 100644
--- a/gpu.cmake
+++ b/gpu.cmake
@@ -24,7 +24,7 @@ endif()
 
 
 if(UNIX)
-    set(CMAKE_CXX_STANDARD 11)
+    set(CMAKE_CXX_STANDARD 14)
 endif()
 
 #############################################################
@@ -84,7 +84,7 @@ ENDIF(MSVC)
 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"     OFF )
-option(VF.BUILD_VF_TRAFFIC      "Build VirtualFluids Traffic" OFF)
+option(VF.BUILD_VF_TRAFFIC      "Build VirtualFluids Traffic" ON)
 option(VF.BUILD_JSONCPP         "Builds json cpp "            OFF)
 option(VF.BUILD_NUMERIC_TESTS   "Build numeric tests"         OFF)
 
@@ -227,7 +227,7 @@ endif()
 #############################################################
 
 if(VF.BUILD_VF_TRAFFIC)
-    add_subdirectory(targets/libs/Traffic)
+    add_subdirectory(src/gpu/Traffic)
 
-    add_subdirectory(targets/apps/LBM/TrafficTest)
+    #add_subdirectory(targets/apps/LBM/TrafficTest)
 endif()
\ No newline at end of file
diff --git a/src/gpu/Traffic/CMakeLists.txt b/src/gpu/Traffic/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e026bdd459642243f9c309e816fecad9ea86c00a
--- /dev/null
+++ b/src/gpu/Traffic/CMakeLists.txt
@@ -0,0 +1,12 @@
+
+
+vf_add_library(BUILDTYPE shared DEPENDS GridGenerator basics)
+
+include (${CMAKE_PATH}/3rd/cuda.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/GridGenerator")
+target_include_directories(${library_name} PRIVATE "${CMAKE_SOURCE_DIR}/src/basics/Core")
+
diff --git a/gpu/src/Traffic/GPU/TrafficTimestep.cu b/src/gpu/Traffic/GPU/TrafficTimestep.cu
similarity index 100%
rename from gpu/src/Traffic/GPU/TrafficTimestep.cu
rename to src/gpu/Traffic/GPU/TrafficTimestep.cu
diff --git a/gpu/src/Traffic/GPU/TrafficTimestep.h b/src/gpu/Traffic/GPU/TrafficTimestep.h
similarity index 100%
rename from gpu/src/Traffic/GPU/TrafficTimestep.h
rename to src/gpu/Traffic/GPU/TrafficTimestep.h
diff --git a/gpu/src/Traffic/GPU/package.include b/src/gpu/Traffic/GPU/package.include
similarity index 100%
rename from gpu/src/Traffic/GPU/package.include
rename to src/gpu/Traffic/GPU/package.include
diff --git a/gpu/src/Traffic/Junction/Junction.h b/src/gpu/Traffic/Junction/Junction.h
similarity index 100%
rename from gpu/src/Traffic/Junction/Junction.h
rename to src/gpu/Traffic/Junction/Junction.h
diff --git a/gpu/src/Traffic/Junction/JunctionData.h b/src/gpu/Traffic/Junction/JunctionData.h
similarity index 100%
rename from gpu/src/Traffic/Junction/JunctionData.h
rename to src/gpu/Traffic/Junction/JunctionData.h
diff --git a/gpu/src/Traffic/Junction/JunctionRandom.cpp b/src/gpu/Traffic/Junction/JunctionRandom.cpp
similarity index 100%
rename from gpu/src/Traffic/Junction/JunctionRandom.cpp
rename to src/gpu/Traffic/Junction/JunctionRandom.cpp
diff --git a/gpu/src/Traffic/Junction/JunctionRandom.h b/src/gpu/Traffic/Junction/JunctionRandom.h
similarity index 100%
rename from gpu/src/Traffic/Junction/JunctionRandom.h
rename to src/gpu/Traffic/Junction/JunctionRandom.h
diff --git a/gpu/src/Traffic/Junction/package.include b/src/gpu/Traffic/Junction/package.include
similarity index 100%
rename from gpu/src/Traffic/Junction/package.include
rename to src/gpu/Traffic/Junction/package.include
diff --git a/gpu/src/Traffic/Output/CarDisplay.cpp b/src/gpu/Traffic/Output/CarDisplay.cpp
similarity index 100%
rename from gpu/src/Traffic/Output/CarDisplay.cpp
rename to src/gpu/Traffic/Output/CarDisplay.cpp
diff --git a/gpu/src/Traffic/Output/CarDisplay.h b/src/gpu/Traffic/Output/CarDisplay.h
similarity index 100%
rename from gpu/src/Traffic/Output/CarDisplay.h
rename to src/gpu/Traffic/Output/CarDisplay.h
diff --git a/gpu/src/Traffic/Output/ConcBySpeedAndAcceleration.cpp b/src/gpu/Traffic/Output/ConcBySpeedAndAcceleration.cpp
similarity index 100%
rename from gpu/src/Traffic/Output/ConcBySpeedAndAcceleration.cpp
rename to src/gpu/Traffic/Output/ConcBySpeedAndAcceleration.cpp
diff --git a/gpu/src/Traffic/Output/ConcBySpeedAndAcceleration.h b/src/gpu/Traffic/Output/ConcBySpeedAndAcceleration.h
similarity index 100%
rename from gpu/src/Traffic/Output/ConcBySpeedAndAcceleration.h
rename to src/gpu/Traffic/Output/ConcBySpeedAndAcceleration.h
diff --git a/gpu/src/Traffic/Output/ConcentrationByPosition.cpp b/src/gpu/Traffic/Output/ConcentrationByPosition.cpp
similarity index 100%
rename from gpu/src/Traffic/Output/ConcentrationByPosition.cpp
rename to src/gpu/Traffic/Output/ConcentrationByPosition.cpp
diff --git a/gpu/src/Traffic/Output/ConcentrationByPosition.h b/src/gpu/Traffic/Output/ConcentrationByPosition.h
similarity index 100%
rename from gpu/src/Traffic/Output/ConcentrationByPosition.h
rename to src/gpu/Traffic/Output/ConcentrationByPosition.h
diff --git a/gpu/src/Traffic/Output/ConcentrationOutwriter.cpp b/src/gpu/Traffic/Output/ConcentrationOutwriter.cpp
similarity index 100%
rename from gpu/src/Traffic/Output/ConcentrationOutwriter.cpp
rename to src/gpu/Traffic/Output/ConcentrationOutwriter.cpp
diff --git a/gpu/src/Traffic/Output/ConcentrationOutwriter.h b/src/gpu/Traffic/Output/ConcentrationOutwriter.h
similarity index 100%
rename from gpu/src/Traffic/Output/ConcentrationOutwriter.h
rename to src/gpu/Traffic/Output/ConcentrationOutwriter.h
diff --git a/gpu/src/Traffic/Output/package.include b/src/gpu/Traffic/Output/package.include
similarity index 100%
rename from gpu/src/Traffic/Output/package.include
rename to src/gpu/Traffic/Output/package.include
diff --git a/gpu/src/Traffic/RoadNetwork/RoadMaker.cpp b/src/gpu/Traffic/RoadNetwork/RoadMaker.cpp
similarity index 100%
rename from gpu/src/Traffic/RoadNetwork/RoadMaker.cpp
rename to src/gpu/Traffic/RoadNetwork/RoadMaker.cpp
diff --git a/gpu/src/Traffic/RoadNetwork/RoadMaker.h b/src/gpu/Traffic/RoadNetwork/RoadMaker.h
similarity index 100%
rename from gpu/src/Traffic/RoadNetwork/RoadMaker.h
rename to src/gpu/Traffic/RoadNetwork/RoadMaker.h
diff --git a/gpu/src/Traffic/RoadNetwork/RoadNetworkData.h b/src/gpu/Traffic/RoadNetwork/RoadNetworkData.h
similarity index 100%
rename from gpu/src/Traffic/RoadNetwork/RoadNetworkData.h
rename to src/gpu/Traffic/RoadNetwork/RoadNetworkData.h
diff --git a/gpu/src/Traffic/RoadNetwork/package.include b/src/gpu/Traffic/RoadNetwork/package.include
similarity index 100%
rename from gpu/src/Traffic/RoadNetwork/package.include
rename to src/gpu/Traffic/RoadNetwork/package.include
diff --git a/gpu/src/Traffic/Sink/Sink.h b/src/gpu/Traffic/Sink/Sink.h
similarity index 100%
rename from gpu/src/Traffic/Sink/Sink.h
rename to src/gpu/Traffic/Sink/Sink.h
diff --git a/gpu/src/Traffic/Sink/SinkData.h b/src/gpu/Traffic/Sink/SinkData.h
similarity index 100%
rename from gpu/src/Traffic/Sink/SinkData.h
rename to src/gpu/Traffic/Sink/SinkData.h
diff --git a/gpu/src/Traffic/Sink/SinkRandom.cpp b/src/gpu/Traffic/Sink/SinkRandom.cpp
similarity index 100%
rename from gpu/src/Traffic/Sink/SinkRandom.cpp
rename to src/gpu/Traffic/Sink/SinkRandom.cpp
diff --git a/gpu/src/Traffic/Sink/SinkRandom.h b/src/gpu/Traffic/Sink/SinkRandom.h
similarity index 100%
rename from gpu/src/Traffic/Sink/SinkRandom.h
rename to src/gpu/Traffic/Sink/SinkRandom.h
diff --git a/gpu/src/Traffic/Sink/package.include b/src/gpu/Traffic/Sink/package.include
similarity index 100%
rename from gpu/src/Traffic/Sink/package.include
rename to src/gpu/Traffic/Sink/package.include
diff --git a/gpu/src/Traffic/Source/Source.h b/src/gpu/Traffic/Source/Source.h
similarity index 100%
rename from gpu/src/Traffic/Source/Source.h
rename to src/gpu/Traffic/Source/Source.h
diff --git a/gpu/src/Traffic/Source/SourceData.h b/src/gpu/Traffic/Source/SourceData.h
similarity index 100%
rename from gpu/src/Traffic/Source/SourceData.h
rename to src/gpu/Traffic/Source/SourceData.h
diff --git a/gpu/src/Traffic/Source/SourceRandom.cpp b/src/gpu/Traffic/Source/SourceRandom.cpp
similarity index 98%
rename from gpu/src/Traffic/Source/SourceRandom.cpp
rename to src/gpu/Traffic/Source/SourceRandom.cpp
index bb39cb95786c71e7246dc68d0365c6f4abaad8f2..7def2c237b81d5c014cab2bebbea1474dac69b36 100644
--- a/gpu/src/Traffic/Source/SourceRandom.cpp
+++ b/src/gpu/Traffic/Source/SourceRandom.cpp
@@ -1,5 +1,3 @@
-#pragma once
-
 #include "SourceRandom.h"
 
 #include <iostream>
diff --git a/gpu/src/Traffic/Source/SourceRandom.h b/src/gpu/Traffic/Source/SourceRandom.h
similarity index 100%
rename from gpu/src/Traffic/Source/SourceRandom.h
rename to src/gpu/Traffic/Source/SourceRandom.h
diff --git a/gpu/src/Traffic/Source/package.include b/src/gpu/Traffic/Source/package.include
similarity index 100%
rename from gpu/src/Traffic/Source/package.include
rename to src/gpu/Traffic/Source/package.include
diff --git a/gpu/src/Traffic/TrafficMovement.cpp b/src/gpu/Traffic/TrafficMovement.cpp
similarity index 99%
rename from gpu/src/Traffic/TrafficMovement.cpp
rename to src/gpu/Traffic/TrafficMovement.cpp
index 610eec19a607c2320c8ed0a4e028fda2c5a7a819..fccf6f583ed0a87a8da0e87d67a62e5d0f531cf5 100644
--- a/gpu/src/Traffic/TrafficMovement.cpp
+++ b/src/gpu/Traffic/TrafficMovement.cpp
@@ -1,5 +1,6 @@
 #include "TrafficMovement.h"
 
+#include <memory>
 #include <iostream>
 #include <stdexcept>
 
diff --git a/gpu/src/Traffic/TrafficMovement.h b/src/gpu/Traffic/TrafficMovement.h
similarity index 100%
rename from gpu/src/Traffic/TrafficMovement.h
rename to src/gpu/Traffic/TrafficMovement.h
diff --git a/gpu/src/Traffic/TrafficMovementFactory - Kopie.cpp b/src/gpu/Traffic/TrafficMovementFactory - Kopie.cpp
similarity index 100%
rename from gpu/src/Traffic/TrafficMovementFactory - Kopie.cpp
rename to src/gpu/Traffic/TrafficMovementFactory - Kopie.cpp
diff --git a/gpu/src/Traffic/TrafficMovementFactory - Kopie.h b/src/gpu/Traffic/TrafficMovementFactory - Kopie.h
similarity index 100%
rename from gpu/src/Traffic/TrafficMovementFactory - Kopie.h
rename to src/gpu/Traffic/TrafficMovementFactory - Kopie.h
diff --git a/gpu/src/Traffic/TrafficMovementFactory.cpp b/src/gpu/Traffic/TrafficMovementFactory.cpp
similarity index 100%
rename from gpu/src/Traffic/TrafficMovementFactory.cpp
rename to src/gpu/Traffic/TrafficMovementFactory.cpp
diff --git a/gpu/src/Traffic/TrafficMovementFactory.h b/src/gpu/Traffic/TrafficMovementFactory.h
similarity index 100%
rename from gpu/src/Traffic/TrafficMovementFactory.h
rename to src/gpu/Traffic/TrafficMovementFactory.h
diff --git a/gpu/src/Traffic/TrafficMovementFactoryTestRoads.cpp b/src/gpu/Traffic/TrafficMovementFactoryTestRoads.cpp
similarity index 100%
rename from gpu/src/Traffic/TrafficMovementFactoryTestRoads.cpp
rename to src/gpu/Traffic/TrafficMovementFactoryTestRoads.cpp
diff --git a/gpu/src/Traffic/TrafficMovementFactoryTestRoads.h b/src/gpu/Traffic/TrafficMovementFactoryTestRoads.h
similarity index 100%
rename from gpu/src/Traffic/TrafficMovementFactoryTestRoads.h
rename to src/gpu/Traffic/TrafficMovementFactoryTestRoads.h
diff --git a/gpu/src/Traffic/Utilities/ConsoleColor.cpp b/src/gpu/Traffic/Utilities/ConsoleColor.cpp
similarity index 100%
rename from gpu/src/Traffic/Utilities/ConsoleColor.cpp
rename to src/gpu/Traffic/Utilities/ConsoleColor.cpp
diff --git a/gpu/src/Traffic/Utilities/ConsoleColor.h b/src/gpu/Traffic/Utilities/ConsoleColor.h
similarity index 100%
rename from gpu/src/Traffic/Utilities/ConsoleColor.h
rename to src/gpu/Traffic/Utilities/ConsoleColor.h
diff --git a/gpu/src/Traffic/Utilities/Logger.cpp b/src/gpu/Traffic/Utilities/Logger.cpp
similarity index 100%
rename from gpu/src/Traffic/Utilities/Logger.cpp
rename to src/gpu/Traffic/Utilities/Logger.cpp
diff --git a/gpu/src/Traffic/Utilities/Logger.h b/src/gpu/Traffic/Utilities/Logger.h
similarity index 100%
rename from gpu/src/Traffic/Utilities/Logger.h
rename to src/gpu/Traffic/Utilities/Logger.h
diff --git a/gpu/src/Traffic/Utilities/RandomHelper.cpp b/src/gpu/Traffic/Utilities/RandomHelper.cpp
similarity index 100%
rename from gpu/src/Traffic/Utilities/RandomHelper.cpp
rename to src/gpu/Traffic/Utilities/RandomHelper.cpp
diff --git a/gpu/src/Traffic/Utilities/RandomHelper.h b/src/gpu/Traffic/Utilities/RandomHelper.h
similarity index 100%
rename from gpu/src/Traffic/Utilities/RandomHelper.h
rename to src/gpu/Traffic/Utilities/RandomHelper.h
diff --git a/gpu/src/Traffic/Utilities/VectorHelper.cpp b/src/gpu/Traffic/Utilities/VectorHelper.cpp
similarity index 100%
rename from gpu/src/Traffic/Utilities/VectorHelper.cpp
rename to src/gpu/Traffic/Utilities/VectorHelper.cpp
diff --git a/gpu/src/Traffic/Utilities/VectorHelper.h b/src/gpu/Traffic/Utilities/VectorHelper.h
similarity index 100%
rename from gpu/src/Traffic/Utilities/VectorHelper.h
rename to src/gpu/Traffic/Utilities/VectorHelper.h
diff --git a/gpu/src/Traffic/Utilities/invalidInput_error.cpp b/src/gpu/Traffic/Utilities/invalidInput_error.cpp
similarity index 100%
rename from gpu/src/Traffic/Utilities/invalidInput_error.cpp
rename to src/gpu/Traffic/Utilities/invalidInput_error.cpp
diff --git a/gpu/src/Traffic/Utilities/invalidInput_error.h b/src/gpu/Traffic/Utilities/invalidInput_error.h
similarity index 100%
rename from gpu/src/Traffic/Utilities/invalidInput_error.h
rename to src/gpu/Traffic/Utilities/invalidInput_error.h
diff --git a/gpu/src/Traffic/Utilities/package.include b/src/gpu/Traffic/Utilities/package.include
similarity index 100%
rename from gpu/src/Traffic/Utilities/package.include
rename to src/gpu/Traffic/Utilities/package.include
diff --git a/gpu/src/Traffic/Utilities/safe_casting.h b/src/gpu/Traffic/Utilities/safe_casting.h
similarity index 100%
rename from gpu/src/Traffic/Utilities/safe_casting.h
rename to src/gpu/Traffic/Utilities/safe_casting.h
diff --git a/gpu/src/Traffic/package.include b/src/gpu/Traffic/package.include
similarity index 100%
rename from gpu/src/Traffic/package.include
rename to src/gpu/Traffic/package.include