diff --git a/CMakeLists.txt b/CMakeLists.txt
index bf0354d..1b3fa77 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,7 @@
 cmake_minimum_required(VERSION 2.8.10 FATAL_ERROR)
 
+cmake_policy(SET CMP0054 NEW)
+
 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
 
 message("${CMAKE_MODULE_PATH}")
@@ -12,8 +14,8 @@
 #SET(CMAKE_C_FLAGS  "${CMAKE_C_FLAGS} -fno-rtti")
 include("cmake/HunterGate.cmake")
 HunterGate(
-    URL "https://github.com/ruslo/hunter/archive/v0.18.44.tar.gz"
-    SHA1 "a78f0b377b8e53c038f12fc18b0c02564c4534c8"
+    URL "https://github.com/ruslo/hunter/archive/v0.18.64.tar.gz"
+    SHA1 "baf9c8cc4f65306f0e442b5419967b4c4c04589a"
 )
 
 project(bmc-webserver CXX C)
@@ -23,9 +25,6 @@
 
 set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
 
-
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-delete-null-pointer-checks")
-
 if (MSAN)
   if(NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang")
     message(FATAL_ERROR "Cannot enable MSAN unless using Clang")
@@ -258,4 +257,4 @@
 # 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)
-execute_process(COMMAND python3 ${CMAKE_CURRENT_SOURCE_DIR}/scripts/prime_vscode_compile_db.py ${C_INCLUDE_DIRS})
\ No newline at end of file
+execute_process(COMMAND python3 ${CMAKE_CURRENT_SOURCE_DIR}/scripts/prime_vscode_compile_db.py ${C_INCLUDE_DIRS})
diff --git a/crow/include/crow/http_connection.h b/crow/include/crow/http_connection.h
index 04810bd..09a1454 100644
--- a/crow/include/crow/http_connection.h
+++ b/crow/include/crow/http_connection.h
@@ -482,17 +482,6 @@
         adaptor_.socket(), buffers_, [&](const boost::system::error_code& ec,
                                          std::size_t bytes_transferred) {
           CROW_LOG_DEBUG << "Wrote " << bytes_transferred << "bytes";
-          for (auto& buffer : buffers_) {
-            /*
-            CROW_LOG_DEBUG << "2nd passbuffer is "
-                           << std::string(
-                                  boost::asio::buffer_cast<const char*>(buffer),
-                                  boost::asio::buffer_size(buffer));
-                                  */
-            CROW_LOG_DEBUG << "pointer address "
-                           << (int)boost::asio::buffer_cast<const char*>(
-                                  buffer);
-          }
 
           is_writing = false;
           res.clear();
diff --git a/crow/include/crow/http_server.h b/crow/include/crow/http_server.h
index 363d268..03bfb97 100644
--- a/crow/include/crow/http_server.h
+++ b/crow/include/crow/http_server.h
@@ -186,7 +186,7 @@
 
   Handler* handler_;
   uint16_t concurrency_{1};
-  std::string server_name_ = "Crow/0.1";
+  std::string server_name_ = "iBMC";
   uint16_t port_;
   std::string bindaddr_;
   unsigned int roundrobin_index_{};
diff --git a/src/webserver_main.cpp b/src/webserver_main.cpp
index ba31a75..f47eb79 100644
--- a/src/webserver_main.cpp
+++ b/src/webserver_main.cpp
@@ -26,7 +26,6 @@
 #include "token_authorization_middleware.hpp"
 #include "web_kvm.hpp"
 #include "webassets.hpp"
-#include "webassets.hpp"
 
 #include <boost/asio.hpp>
 #include <boost/endian/arithmetic.hpp>
@@ -223,9 +222,9 @@
 
 int main(int argc, char** argv) {
   auto worker(g3::LogWorker::createLogWorker());
-  std::string logger_name("bmcweb");
-  std::string folder("/tmp/");
-  auto handle = worker->addDefaultLogger(logger_name, folder);
+  if (false) {
+    auto handle = worker->addDefaultLogger("bmcweb", "/tmp/");
+  }
   g3::initializeLogging(worker.get());
   auto sink_handle = worker->addSink(std::make_unique<crow::ColorCoutSink>(),
                                      &crow::ColorCoutSink::ReceiveLogMessage);
