incremental
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9035ee7..d33e4a4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -45,12 +45,16 @@
 option(BUILD_SHARED_LIBS "Build as shared library" OFF)
 option(BUILD_UT "Enable Unit test" OFF)
 
+# This needs to be before the crow and other module includes so headers get overriden correctly
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
+
 # security flags
 #SET(CMAKE_CXX_FLAGS  "${CMAKE_CXX_FLAGS} -fstack-protector-strong -fPIE -fPIC -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security" )
 #SET(CMAKE_EXE_LINKER_FLAGS  "${CMAKE_EXE_LINKER_FLAGS} -z noexecstack -z relro -z now")
 
 # Boost
 #add_definitions(-DBOOST_ASIO_ENABLE_HANDLER_TRACKING)
+#add_definitions(-DBOOST_ERROR_CODE_HEADER_ONLY)
 add_definitions(-DBOOST_ALL_NO_LIB)
 set(Boost_USE_STATIC_LIBS ON)
 hunter_add_package(Boost COMPONENTS system thread)
@@ -60,15 +64,9 @@
 hunter_add_package(OpenSSL)
 find_package(OpenSSL REQUIRED)
 
-# Crow
-add_definitions(-DCROW_ENABLE_SSL)
-include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/crow/include)
-#add_subdirectory(crow)
+
 
 #g3 logging
-#option(ADD_FATAL_EXAMPLE "Disable g3 examples" OFF)
-#add_subdirectory(g3log)
-#include_directories(g3log/src)
 # G3logger does some unfortunate compile options, so cheat a little bit and copy/paste
 
 set(LOG_SRC ${CMAKE_CURRENT_SOURCE_DIR}/g3log/src)
@@ -84,14 +82,18 @@
 
 # Create the g3log library
 include_directories(${LOG_SRC})
-#MESSAGE("  g3logger files: [${SRC_FILES}]")
+
 add_library(g3logger ${SRC_FILES})
 set_target_properties(g3logger PROPERTIES
     LINKER_LANGUAGE CXX
     OUTPUT_NAME g3logger
     CLEAN_DIRECT_OUTPUT 1)
 target_link_libraries(g3logger ${PLATFORM_LINK_LIBRIES})
-SET(G3LOG_LIBRARY g3logger)
+
+
+# Crow
+add_definitions(-DCROW_ENABLE_SSL)
+include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/crow/include)
 
 #Zlib
 #hunter_add_package(ZLIB)
@@ -103,7 +105,7 @@
 set(WEBSERVER_MAIN src/webserver_main.cpp)
 
 set(HDR_FILES
-    include/crow_g3_logger.hpp
+    include/crow/g3_logger.hpp
     include/ssl_key_handler.hpp
     include/color_cout_g3_sink.hpp
     include/webassets.hpp
@@ -124,11 +126,13 @@
 
 set(SRC_FILES
     src/token_authorization_middleware.cpp
+    src/security_headers_middleware.cpp
     src/base64.cpp
     ${GENERATED_SRC_FILES}
 )
 
 set(UT_FILES
+    src/crowtest/crow_unittest.cpp
     src/gtest_main.cpp
     src/base64_test.cpp
     src/token_authorization_middleware_test.cpp
@@ -149,7 +153,7 @@
 
     add_executable(unittest ${HDR_FILES} ${SRC_FILES} ${UT_FILES})
     target_link_libraries(unittest GTest::GTest GTest::Main)
-    target_link_libraries(unittest ${BOOST_LIBRARIES} Boost::system Boost::thread)
+    target_link_libraries(unittest Boost::system Boost::thread)
     target_link_libraries(unittest ${CMAKE_THREAD_LIBS_INIT})
     target_link_libraries(unittest OpenSSL::SSL OpenSSL::Crypto)
     target_link_libraries(unittest g3logger)
@@ -162,7 +166,7 @@
 
 # bmcweb
 add_executable(bmcweb ${WEBSERVER_MAIN} ${HDR_FILES} ${SRC_FILES})
-target_link_libraries(bmcweb ${BOOST_LIBRARIES} Boost::system Boost::thread)
+target_link_libraries(bmcweb  Boost::system Boost::thread)
 target_link_libraries(bmcweb ${CMAKE_THREAD_LIBS_INIT})
 target_link_libraries(bmcweb OpenSSL::SSL OpenSSL::Crypto)
 target_link_libraries(bmcweb g3logger)
@@ -170,7 +174,6 @@
 add_dependencies(bmcweb packagestaticcpp)
 
 # bmcweb
-#add_definitions(-DBOOST_ALL_NO_LIB)
 add_executable(udpclient src/udpclient.cpp)
 
 target_link_libraries(udpclient Boost::system)
@@ -179,9 +182,6 @@
 
 add_executable(getvideo src/getvideo_main.cpp)
 
-
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
-
 # Visual Studio Code helper
 # this needs to be at the end to make sure all includes are handled correctly
 get_property(C_INCLUDE_DIRS DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)