diff --git a/include/crow/bmc_app_type.hpp b/include/crow/bmc_app_type.hpp
new file mode 100644
index 0000000..061143b
--- /dev/null
+++ b/include/crow/bmc_app_type.hpp
@@ -0,0 +1,7 @@
+#pragma once
+
+#include <crow/app.h>
+#include <token_authorization_middleware.hpp>
+#include <security_headers_middleware.hpp>
+
+using BmcAppType = crow::App<crow::TokenAuthorizationMiddleware, crow::SecurityHeadersMiddleware>;
\ No newline at end of file
diff --git a/include/crow/g3_logger.hpp b/include/crow/g3_logger.hpp
new file mode 100644
index 0000000..8980207
--- /dev/null
+++ b/include/crow/g3_logger.hpp
@@ -0,0 +1,89 @@
+#pragma once
+
+// This file overrides the default crow logging framework to use g3 instead.
+// It implements enough of the interfaces of the crow logging framework to work correctly
+// but deletes the ILogHandler interface, as usage of that would be counter to the g3
+// handler management, and would cause performance issues.
+
+#include <cstdio>
+#include <cstdlib>
+#include <ctime>
+#include <iostream>
+#include <sstream>
+#include <string>
+
+#include <g3log/g3log.hpp>
+#include <g3log/logworker.hpp>
+
+namespace crow {
+enum class LogLevel {
+#ifndef ERROR
+  DEBUG = 0,
+  INFO,
+  WARNING,
+  ERROR,
+  CRITICAL,
+#endif
+
+  Debug = 0,
+  Info,
+  Warning,
+  Error,
+  Critical,
+};
+
+class logger {
+ public:
+  logger(std::string prefix, LogLevel level) {
+    // no op, let g3 handle th log levels
+  }
+
+  //
+  template <typename T>
+  logger& operator<<(T const& value) {
+    return *this;
+  }
+
+  //
+  static void setLogLevel(LogLevel level) { }
+
+  static LogLevel get_current_log_level() { return get_log_level_ref(); }
+
+ private:
+  //
+  static LogLevel& get_log_level_ref() {
+    static LogLevel current_level = LogLevel::DEBUG;
+    return current_level;
+  }
+
+  //
+  std::ostringstream stringstream_;
+  LogLevel level_;
+};
+}
+
+#define CROW_LOG_CRITICAL LOG(FATAL)
+#define CROW_LOG_ERROR LOG(WARNING)
+#define CROW_LOG_WARNING LOG(WARNING)
+#define CROW_LOG_INFO LOG(INFO)
+#define CROW_LOG_DEBUG LOG(DEBUG)
+
+
+
+/*
+#define CROW_LOG_CRITICAL   \
+        if (false) \
+            crow::logger("CRITICAL", crow::LogLevel::Critical)
+#define CROW_LOG_ERROR      \
+        if (false) \
+            crow::logger("ERROR   ", crow::LogLevel::Error)
+#define CROW_LOG_WARNING    \
+        if (false) \
+            crow::logger("WARNING ", crow::LogLevel::Warning)
+#define CROW_LOG_INFO       \
+        if (false) \
+            crow::logger("INFO    ", crow::LogLevel::Info)
+#define CROW_LOG_DEBUG      \
+        if (false) \
+            crow::logger("DEBUG   ", crow::LogLevel::Debug)
+*/
\ No newline at end of file
