diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index a1e190d..532af8e 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -12,7 +12,7 @@
 QEMU, please add
 
 What specific OpenBMC versions (SHA1) did you use? (note, SHA1 should be
-resolvable to https://github.com/openbmc/openbmc)
+resolvable to <https://github.com/openbmc/openbmc>)
 
 **To Reproduce** Steps to reproduce the behavior:
 
diff --git a/.github/ISSUE_TEMPLATE/custom.md b/.github/ISSUE_TEMPLATE/custom.md
index b168329..e3c7a81 100644
--- a/.github/ISSUE_TEMPLATE/custom.md
+++ b/.github/ISSUE_TEMPLATE/custom.md
@@ -9,4 +9,4 @@
 Please do not use GitHub issues for submitting questions. Please submit your
 questions either to the OpenBMC mailing list, or to the OpenBMC discord channel.
 
-https://github.com/openbmc/docs/blob/master/README.md#contact
+<https://github.com/openbmc/docs/blob/master/README.md#contact>
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
index 86f8716..60e1e07 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -8,4 +8,4 @@
 
 Please do not submit feature requests to GitHub. Please indicate your interest
 in particular projects or features on the mailing list at
-https://lists.ozlabs.org/listinfo/openbmc
+<https://lists.ozlabs.org/listinfo/openbmc>
diff --git a/.markdownlint.yaml b/.markdownlint.yaml
new file mode 100644
index 0000000..15c9e81
--- /dev/null
+++ b/.markdownlint.yaml
@@ -0,0 +1,3 @@
+default: true
+MD024:
+    siblings_only: true
diff --git a/CLIENTS.md b/CLIENTS.md
index 6e7091e..4978bb6 100644
--- a/CLIENTS.md
+++ b/CLIENTS.md
@@ -1,3 +1,5 @@
+# Client overview
+
 bmcweb being a user and network facing daemon, is subject to a vast array of
 tests and clients that could target it. The below attempts to provide a
 non-exhaustive list of tests and clients that bmcweb is expected to be
@@ -31,13 +33,13 @@
 Status: Passing for some machines with CI integration.
 
 slowloris: A tool to verify timeouts and DOS attack mitigation is implemented
-properly. https://github.com/gkbrk/slowloris
+properly. <https://github.com/gkbrk/slowloris>
 
 Status: Passing, no automated enforcement.
 
 testssl.sh: A tool for verifying the corectness of the bmcweb cipher suites
 against current recommended security standards
-https://github.com/drwetter/testssl.sh
+<https://github.com/drwetter/testssl.sh>
 
 Status: Unknown
 
@@ -55,7 +57,7 @@
 Status: Compatible
 
 Redfish-Event-Listener: An example client for testing and implementing
-EventService handlers. https://github.com/DMTF/Redfish-Event-Listener
+EventService handlers. <https://github.com/DMTF/Redfish-Event-Listener>
 
 Status: Compatible. No CI integration.
 
@@ -65,6 +67,6 @@
 Status: Unknown.
 
 redfishtool: A generic command line tool for reading and writing operations to
-the Redfish server. https://github.com/DMTF/Redfishtool
+the Redfish server. <https://github.com/DMTF/Redfishtool>
 
 Status: Compatible. No automated testing.
diff --git a/COMMON_ERRORS.md b/COMMON_ERRORS.md
index 317cef8..6cb7340 100644
--- a/COMMON_ERRORS.md
+++ b/COMMON_ERRORS.md
@@ -9,9 +9,9 @@
 bugs, or bugs that appear later. Every one has been submitted to code review
 multiple times.
 
-### 1. Directly dereferencing a pointer without checking for validity first
+## 1. Directly dereferencing a pointer without checking for validity first
 
-```C++
+```cpp
 int myBadMethod(const nlohmann::json& j){
     const int* myPtr = j.get_if<int>();
     return *myPtr;
@@ -20,21 +20,21 @@
 
 This pointer is not guaranteed to be filled, and could be a null dereference.
 
-### 2. String views aren't null terminated
+## 2. String views aren't null terminated
 
-```C++
+```cpp
 int getIntFromString(const std::string_view s){
     return std::atoi(s.data());
 }
 ```
 
 This will give the right answer much of the time, but has the possibility to
-fail when string_view is not null terminated. Use from_chars instead, which
+fail when `string_view` is not null terminated. Use `from_chars` instead, which
 takes both a pointer and a length
 
-### 3. Not handling input errors
+## 3. Not handling input errors
 
-```C++
+```cpp
 int getIntFromString(const std::string& s){
     return std::atoi(s.c_str());
 }
@@ -42,12 +42,12 @@
 
 In the case where the string is not representable as an int, this will trigger
 undefined behavior at system level. Code needs to check for validity of the
-string, ideally with something like from_chars, and return the appropriate error
-code.
+string, ideally with something like `from_chars`, and return the appropriate
+error code.
 
-### 4. Walking off the end of a string
+## 4. Walking off the end of a string
 
-```C++
+```cpp
 std::string getFilenameFromPath(const std::string& path){
     size_t index = path.find("/");
     if (index != std::string::npos){
@@ -58,9 +58,9 @@
 }
 ```
 
-### 5. Using methods that throw (or not handling bad inputs)
+## 5. Using methods that throw (or not handling bad inputs)
 
-```C++
+```cpp
 int myBadMethod(nlohmann::json& j){
     return j.get<int>();
 }
@@ -90,7 +90,7 @@
 - std::stol
 - std::stoll
 
-#### Special note: JSON
+### Special note: JSON
 
 `nlohmann::json::parse` by default
 [throws](https://json.nlohmann.me/api/basic_json/parse/) on failure, but also
@@ -103,7 +103,7 @@
 to `replace`. Although `ignore` preserves content 1:1, `replace` is preferred
 from a security point of view.
 
-#### Special note: Boost
+### Special note: Boost
 
 there is a whole class of boost asio functions that provide both a method that
 throws on failure, and a method that accepts and returns an error code. This is
@@ -116,7 +116,7 @@
 - boost::asio::ip::tcp::acceptor::listen();
 - boost::asio::ip::address::make_address();
 
-### 6. Blocking functions
+## 6. Blocking functions
 
 bmcweb uses a single reactor for all operations. Blocking that reactor for any
 amount of time causes all other operations to stop. The common blocking
@@ -138,7 +138,7 @@
 should be "fast" most of the time) and in general how little the filesystem is
 used in practice.
 
-### 7. Lack of locking between subsequent calls
+## 7. Lack of locking between subsequent calls
 
 While global data structures are discouraged, they are sometimes required to
 store temporary state for operations that require it. Given the single threaded
@@ -146,7 +146,7 @@
 must be always left in a valid state, and checked for other uses before
 occupying.
 
-```C++
+```cpp
 std::optional<std::string> currentOperation;
 void firstCallbackInFlow(){
     currentOperation = "Foo";
@@ -159,9 +159,9 @@
 In the above case, the first callback needs a check to ensure that
 currentOperation is not already being used.
 
-### 8. Wildcard reference captures in lambdas
+## 8. Wildcard reference captures in lambdas
 
-```
+```cpp
 std::string x; auto mylambda = [&](){
     x = "foo";
 }
@@ -173,11 +173,12 @@
 difficult these types of bugs are to triage, bmcweb explicitly requires that all
 code captures variables by name explicitly, and calls out each variable being
 captured by value or by reference. The above prototypes would change to
-[&x]()... Which makes clear that x is captured, and its lifetime needs tracked.
+`[&x]()...` Which makes clear that x is captured, and its lifetime needs
+tracked.
 
-### 9. URLs should end in "/"
+## 9. URLs should end in "/"
 
-```C++
+```cpp
 BMCWEB("/foo/bar");
 ```
 
@@ -188,9 +189,9 @@
 by users. While many specifications do not require this, it resolves a whole
 class of bug that we've seen in the past.
 
-### 10. URLs constructed in aggregate
+## 10. URLs constructed in aggregate
 
-```C++
+```cpp
 std::string routeStart = "/redfish/v1";
 
 BMCWEB_ROUTE(routestart + "/SessionService/")
@@ -203,9 +204,9 @@
 the route handlers no longer greppable, and complicates bmcweb patchsets as a
 whole.
 
-### 11. Not responding to 404
+## 11. Not responding to 404
 
-```C++
+```cpp
 BMCWEB_ROUTE("/myendpoint/<str>",
     [](Request& req, Response& res, const std::string& id){
      crow::connections::systemBus->async_method_call(
@@ -228,16 +229,16 @@
 appropriate. 500 internal error is not a substitute for this, and should be only
 used if there isn't a more appropriate error code that can be returned. This is
 important, because a number of vulnerability scanners attempt injection attacks
-in the form of /myendpoint/foobar, or /myendpoint/#$*(%)&#%$)(\*& in an attempt
-to circumvent security. If the server returns 500 to any of these requests, the
-security scanner logs it as an error for followup. While in general these errors
-are benign, and not actually a real security threat, having a clean security run
-allows maintainers to minimize the amount of time spent triaging issues reported
-from these scanning tools.
+in the form of `/myendpoint/foobar`, or `/myendpoint/#$*(%)&#%$)(\*&` in an
+attempt to circumvent security. If the server returns 500 to any of these
+requests, the security scanner logs it as an error for followup. While in
+general these errors are benign, and not actually a real security threat, having
+a clean security run allows maintainers to minimize the amount of time spent
+triaging issues reported from these scanning tools.
 
 An implementation of the above that handles 404 would look like:
 
-```C++
+```cpp
 BMCWEB_ROUTE("/myendpoint/<str>",
     [](Request& req, Response& res, const std::string& id){
      crow::connections::systemBus->async_method_call(
@@ -265,9 +266,9 @@
 assumed to be
 [a bug in either the system, or bmcweb.](https://github.com/openbmc/bmcweb/blob/master/DEVELOPING.md#error-handling)
 
-### 12. Imprecise matching
+## 12. Imprecise matching
 
-```C++
+```cpp
 void isInventoryPath(const std::string& path){
     if (path.find("inventory")){
         return true;
@@ -281,7 +282,7 @@
 where fan1 and fan11 both report to the same object, and cause behavior breaks
 in subtle ways.
 
-When using dbus paths, rely on the methods on sdbusplus::message::object_path.
+When using dbus paths, rely on the methods on `sdbusplus::message::object_path`.
 When parsing HTTP field and lists, use the RFC7230 implementations from
 boost::beast.
 
@@ -300,9 +301,9 @@
 fields from it. In practice, there tends to be better, purpose built methods for
 removing just the field you need.
 
-### 13. Complete replacement of the response object
+## 13. Complete replacement of the response object
 
-```
+```cpp
 void getMembers(crow::Response& res){
   res.jsonValue = {{"Value", 2}};
 }
@@ -314,7 +315,7 @@
 output of the response is dependent on the _order_ of the asynchronous actions
 completing, which cannot be guaranteed, and has many time caused bugs.
 
-```
+```cpp
 void getMembers(crow::Response& res){
   res.jsonValue["Value"] = 2;
 }
diff --git a/DBUS_USAGE.md b/DBUS_USAGE.md
index 75a36c7..577bf9f 100644
--- a/DBUS_USAGE.md
+++ b/DBUS_USAGE.md
@@ -1,3 +1,5 @@
+# dbus usage
+
 The following are guidelines for bmcweb's use of DBus to construct Redfish
 schemas:
 
diff --git a/DEVELOPING.md b/DEVELOPING.md
index d475d53..77cfece 100644
--- a/DEVELOPING.md
+++ b/DEVELOPING.md
@@ -1,150 +1,151 @@
 # OpenBMC Webserver Development
 
-1. ### Performance targets
+## Guidelines
 
-   As OpenBMC is intended to be deployed on an embedded system, care should be
-   taken to avoid expensive constructs, and memory usage. In general, our
-   performance and metric targets are:
+### Performance targets
 
-   - Binaries and static files should take up < 1MB of filesystem size
-   - Memory usage should remain below 10MB at all times
-   - Application startup time should be less than 1 second on target hardware
-     (AST2500)
+As OpenBMC is intended to be deployed on an embedded system, care should be
+taken to avoid expensive constructs, and memory usage. In general, our
+performance and metric targets are:
 
-2. ### Asynchronous programming
+- Binaries and static files should take up < 1MB of filesystem size
+- Memory usage should remain below 10MB at all times
+- Application startup time should be less than 1 second on target hardware
+  (AST2500)
 
-   Care should be taken to ensure that all code is written to be asynchronous in
-   nature, to avoid blocking methods from stopping the processing of other
-   tasks. At this time the webserver uses boost::asio for it async framework.
-   Threads should be avoided if possible, and instead use async tasks within
-   boost::asio.
+### Asynchronous programming
 
-3. ### Secure coding guidelines
+Care should be taken to ensure that all code is written to be asynchronous in
+nature, to avoid blocking methods from stopping the processing of other tasks.
+At this time the webserver uses boost::asio for it async framework. Threads
+should be avoided if possible, and instead use async tasks within boost::asio.
 
-   Secure coding practices should be followed in all places in the webserver
+### Secure coding guidelines
 
-   In general, this means:
+Secure coding practices should be followed in all places in the webserver
 
-   - All buffer boundaries must be checked before indexing or using values
-   - All pointers and iterators must be checked for null before dereferencing
-   - All input from outside the application is considered untrusted, and should
-     be escaped, authorized and filtered accordingly. This includes files in the
-     filesystem.
-   - All error statuses are checked and accounted for in control flow.
-   - Where applicable, noexcept methods should be preferred to methods that use
-     exceptions
-   - Explicitly bounded types should be preferred over implicitly bounded types
-     (like std::array<int, size> as opposed to int[size])
-   - no use of
-     [Banned functions](https://github.com/intel/safestringlib/wiki/SDL-List-of-Banned-Functions "Banned function list")
+In general, this means:
 
-4. ### Error handling
+- All buffer boundaries must be checked before indexing or using values
+- All pointers and iterators must be checked for null before dereferencing
+- All input from outside the application is considered untrusted, and should be
+  escaped, authorized and filtered accordingly. This includes files in the
+  filesystem.
+- All error statuses are checked and accounted for in control flow.
+- Where applicable, noexcept methods should be preferred to methods that use
+  exceptions
+- Explicitly bounded types should be preferred over implicitly bounded types
+  (like std::array<int, size> as opposed to int[size])
+- no use of
+  [Banned functions](https://github.com/intel/safestringlib/wiki/SDL-List-of-Banned-Functions "Banned function list")
 
-   Error handling should be constructed in such a way that all possible errors
-   return valid HTTP responses. The following HTTP codes will be used commonly
+### Error handling
 
-   - 200 OK - Request was properly handled
-   - 201 Created - Resource was created
-   - 401 Unauthorized - Request didn't posses the necessary authentication
-   - 403 Forbidden - Request was authenticated, but did not have the necessary
-     permissions to accomplish the requested task
-   - 404 Not found - The url was not found
-   - 500 Internal error - Something has broken within the OpenBMC web server,
-     and should be filed as a bug
+Error handling should be constructed in such a way that all possible errors
+return valid HTTP responses. The following HTTP codes will be used commonly
 
-   Where possible, 307 and 308 redirects should be avoided, as they introduce
-   the possibility for subtle security bugs.
+- 200 OK - Request was properly handled
+- 201 Created - Resource was created
+- 401 Unauthorized - Request didn't posses the necessary authentication
+- 403 Forbidden - Request was authenticated, but did not have the necessary
+  permissions to accomplish the requested task
+- 404 Not found - The url was not found
+- 500 Internal error - Something has broken within the OpenBMC web server, and
+  should be filed as a bug
 
-5. ### Startup times
+Where possible, 307 and 308 redirects should be avoided, as they introduce the
+possibility for subtle security bugs.
 
-   Given that the most common target of OpenBMC is an ARM11 processor, care
-   needs to be taken to ensure startup times are low. In general this means:
+### Startup times
 
-   - Minimizing the number of files read from disk at startup. Unless a feature
-     is explicitly intended to be runtime configurable, its logic should be
-     "baked in" to the application at compile time. For cases where the
-     implementation is configurable at runtime, the default values should be
-     included in application code to minimize the use of nonvolatile storage.
-   - Avoid excessive memory usage and mallocs at startup.
+Given that the most common target of OpenBMC is an ARM11 processor, care needs
+to be taken to ensure startup times are low. In general this means:
 
-6. ### Compiler features
+- Minimizing the number of files read from disk at startup. Unless a feature is
+  explicitly intended to be runtime configurable, its logic should be "baked in"
+  to the application at compile time. For cases where the implementation is
+  configurable at runtime, the default values should be included in application
+  code to minimize the use of nonvolatile storage.
+- Avoid excessive memory usage and mallocs at startup.
 
-   - At this point in time, the webserver sets a number of security flags in
-     compile time options to prevent misuse. The specific flags and what
-     optimization levels they are enabled at are documented in the
-     CMakeLists.txt file.
-   - Exceptions are currently enabled for webserver builds, but their use is
-     discouraged. Long term, the intent is to disable exceptions, so any use of
-     them for explicit control flow will likely be rejected in code review. Any
-     use of exceptions should be cases where the program can be reasonably
-     expected to crash if the exception occurs, as this will be the future
-     behavior once exceptions are disabled.
-   - Run time type information is disabled
-   - Link time optimization is enabled
+### Compiler features
 
-7. ### Authentication
+- At this point in time, the webserver sets a number of security flags in
+  compile time options to prevent misuse. The specific flags and what
+  optimization levels they are enabled at are documented in the CMakeLists.txt
+  file.
+- Exceptions are currently enabled for webserver builds, but their use is
+  discouraged. Long term, the intent is to disable exceptions, so any use of
+  them for explicit control flow will likely be rejected in code review. Any use
+  of exceptions should be cases where the program can be reasonably expected to
+  crash if the exception occurs, as this will be the future behavior once
+  exceptions are disabled.
+- Run time type information is disabled
+- Link time optimization is enabled
 
-   The webserver shall provide the following authentication mechanisms.
+### Authentication
 
-   - Basic authentication
-   - Cookie authentication
-   - Token authentication
+The webserver shall provide the following authentication mechanisms.
 
-   There shall be connection between the authentication mechanism used and
-   resources that are available over it. The webserver shall employ an
-   authentication scheme that is in line with the rest of OpenBMC, and allows
-   users and privileges to be provisioned from other interfaces.
+- Basic authentication
+- Cookie authentication
+- Token authentication
 
-8. ### Web security
+There shall be connection between the authentication mechanism used and
+resources that are available over it. The webserver shall employ an
+authentication scheme that is in line with the rest of OpenBMC, and allows users
+and privileges to be provisioned from other interfaces.
 
-   The OpenBMC webserver shall follow the latest OWASP recommendations for
-   authentication, session management, and security.
+### Web security
 
-9. ### Performance
+The OpenBMC webserver shall follow the latest OWASP recommendations for
+authentication, session management, and security.
 
-   The performance priorities for the OpenBMC webserver are (in order):
+### Performance
 
-   1. Code is readable and clear
-   2. Code follows secure guidelines
-   3. Code is performant, and does not unnecessarily abstract concepts at the
-      expense of performance
-   4. Code does not employ constructs which require continuous system resources,
-      unless required to meet performance targets. (example: caching sensor
-      values which are expected to change regularly)
+The performance priorities for the OpenBMC webserver are (in order):
 
-10. ### Abstraction/interfacing
+1. Code is readable and clear
+2. Code follows secure guidelines
+3. Code is performant, and does not unnecessarily abstract concepts at the
+   expense of performance
+4. Code does not employ constructs which require continuous system resources,
+   unless required to meet performance targets. (example: caching sensor values
+   which are expected to change regularly)
 
-    In general, the OpenBMC webserver is built using the data driven design.
-    Abstraction and Interface guarantees should be used when multiple
-    implementations exist, but for implementations where only a single
-    implementation exists, prefer to make the code correct and clean rather than
-    implement a concrete interface.
+### Abstraction/interfacing
 
-11. ### phosphor webui
+In general, the OpenBMC webserver is built using the data driven design.
+Abstraction and Interface guarantees should be used when multiple
+implementations exist, but for implementations where only a single
+implementation exists, prefer to make the code correct and clean rather than
+implement a concrete interface.
 
-    The webserver should be capable of hosting phosphor-webui, and implementing
-    the required flows to host the application. In general, all access methods
-    should be available to the webui.
+### phosphor webui
 
-12. ### Redfish
+The webserver should be capable of hosting phosphor-webui, and implementing the
+required flows to host the application. In general, all access methods should be
+available to the webui.
 
-    bmcweb's Redfish implementation, including Redfish OEM Resources, shall
-    conform to the Redfish specification. Please keep bmcweb's
-    [Redfish support document](https://github.com/openbmc/bmcweb/blob/master/Redfish.md)
-    updated. OEM schemas should conform and be developed in line with the rules
-    in
-    [OEM SCHEMAS](https://github.com/openbmc/bmcweb/blob/master/OEM_SCHEMAS.md).
+### Redfish
 
-13. ### Common errors
+bmcweb's Redfish implementation, including Redfish OEM Resources, shall conform
+to the Redfish specification. Please keep bmcweb's
+[Redfish support document](https://github.com/openbmc/bmcweb/blob/master/Redfish.md)
+updated. OEM schemas should conform and be developed in line with the rules in
+[OEM SCHEMAS](https://github.com/openbmc/bmcweb/blob/master/OEM_SCHEMAS.md).
 
-    A number of examples of common errors are captured in the common errors doc.
-    It is recommended that developers read and understand all of them before
-    starting any openbmc development.
-    [Common Errors](https://github.com/openbmc/bmcweb/blob/master/COMMON_ERRORS.md).
+### Common errors
 
-14. ### Commit messages
-    Project commit message formatting should be obeyed
-    [link](https://github.com/openbmc/docs/blob/master/CONTRIBUTING.md#formatting-commit-messages)
+A number of examples of common errors are captured in the common errors doc. It
+is recommended that developers read and understand all of them before starting
+any openbmc development.
+[Common Errors](https://github.com/openbmc/bmcweb/blob/master/COMMON_ERRORS.md).
+
+### Commit messages
+
+Project commit message formatting should be obeyed
+[link](https://github.com/openbmc/docs/blob/master/CONTRIBUTING.md#formatting-commit-messages)
 
 Commit messages should answer the following questions:
 
@@ -162,9 +163,10 @@
 
 Commit messages should be line wrapped 50/72.
 
-15. ### Compatibility
-    "Don't make your users mad" Greg K-H
-    [source](https://git.sr.ht/~gregkh/presentation-application_summit/tree/main/keep_users_happy.pdf)
+### Compatibility
+
+> Don't make your users mad -
+> [Greg K-H](https://git.sr.ht/~gregkh/presentation-application_summit/tree/main/keep_users_happy.pdf)
 
 The kernel has very similar rules around compatibility that we should aspire to
 follow in the footsteps of.
diff --git a/HEADERS.md b/HEADERS.md
index 75f142e..1a9c849 100644
--- a/HEADERS.md
+++ b/HEADERS.md
@@ -1,6 +1,8 @@
-## Why does bmcweb use so many headers? My build times are slow!##
+# bmcweb headers
 
-TL; DR, History
+**Why does bmcweb use so many headers? My build times are slow!**
+
+TL;DR, History
 
 bmcweb at one point was a crow-based project. Evidence of this can still be seen
 in the http/.hpp files that still contain references to the crow namespaces.
@@ -19,7 +21,7 @@
 of this document is largely to save effort for the next person, so they can at
 least start from the existing prior attempts.
 
-https://gerrit.openbmc.org/c/openbmc/bmcweb/+/49039
+<https://gerrit.openbmc.org/c/openbmc/bmcweb/+/49039>
 
 Moving to cpp files without handling any architecture has the net result of
 making total compilation slower, not faster, as the slowest-to-compile parts end
@@ -31,7 +33,7 @@
 
 - Moving the Request and Response containers to opaque structures, so a majority
   of code only needs to #include the interface, not any of the template code.
-  https://gerrit.openbmc.org/c/openbmc/bmcweb/+/37445 Doing this exposed a
+  <https://gerrit.openbmc.org/c/openbmc/bmcweb/+/37445> Doing this exposed a
   number of mediocre practices in the route handlers, where routes made copies
   of requests/responses, relied on APIs that should've been internal, and other
   practices that make this migration less straightforward, but is still being
diff --git a/OEM_SCHEMAS.md b/OEM_SCHEMAS.md
index c30e508..0758097 100644
--- a/OEM_SCHEMAS.md
+++ b/OEM_SCHEMAS.md
@@ -1,4 +1,4 @@
-## Redfish OEM Resources
+# Redfish OEM Resources
 
 The Redfish specification allows for OEM resources and properties to be
 implemented by OEMs. As a general rule, OpenBMC discourages the use of OEM
@@ -6,7 +6,7 @@
 OEM properties in a backward API compatible way for resources that have not been
 merged to master.
 
-### Why?
+## Why?
 
 OEM properties in an open source project pose many problems when compared to
 their closed source brethren in terms of reliability, code reuse, compatibility,
@@ -40,7 +40,7 @@
    leads to positive API design changes up front, which increases the usefulness
    of the code we write within the industry.
 
-### How?
+## How?
 
 If you've read the above, and still think an OEM property is warranted, please
 take the following steps.
diff --git a/README.md b/README.md
index 01b0c1a..8abaa61 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@
   to dbus and the objects it represents.
 - Serial: A serial websocket for interacting with the host serial console
   through websockets.
-- Redfish: A protocol compliant, (Redfish.md)[DBus to Redfish translator].
+- Redfish: A protocol compliant, [DBus to Redfish translator](Redfish.md).
 - KVM: A websocket based implementation of the RFB (VNC) frame buffer protocol
   intended to mate to webui-vue to provide a complete KVM implementation.
 
@@ -50,9 +50,9 @@
 
 bmcweb is configured per the
 [meson build files](https://mesonbuild.com/Build-options.html). Available
-options are documented in meson_options.txt
+options are documented in `meson_options.txt`
 
-## Compile bmcweb with default options:
+## Compile bmcweb with default options
 
 ```ascii
 meson builddir
@@ -83,7 +83,7 @@
 
 bmcweb relies on some on-system data for storage of persistent data that is
 internal to the process. Details on the exact data stored and when it is
-read/written can seen from the persistent_data namespace.
+read/written can seen from the `persistent_data` namespace.
 
 ## TLS certificate generation
 
diff --git a/Redfish.md b/Redfish.md
index d302f78..cc714eb 100644
--- a/Redfish.md
+++ b/Redfish.md
@@ -18,7 +18,7 @@
 [here](https://redfish.dmtf.org/schemas/)
 
 If using a previously unused schema, you will need to add it to the included
-schema list in scripts/update_schemas.py and run update_schemas.py.
+schema list in `scripts/update_schemas.py` and run `update_schemas.py`.
 
 Fields common to all schemas
 
@@ -27,9 +27,9 @@
 - Id
 - Name
 
-#### /redfish/v1/
+### /redfish/v1/
 
-##### ServiceRoot
+#### ServiceRoot
 
 - AccountService
 - CertificateService
@@ -47,9 +47,9 @@
 - UUID
 - UpdateService
 
-#### /redfish/v1/AccountService/
+### /redfish/v1/AccountService/
 
-##### AccountService
+#### AccountService
 
 - AccountLockoutDuration
 - AccountLockoutThreshold
@@ -66,17 +66,17 @@
 - Roles
 - ServiceEnabled
 
-#### /redfish/v1/AccountService/Accounts/
+### /redfish/v1/AccountService/Accounts/
 
-##### ManagerAccountCollection
+#### ManagerAccountCollection
 
 - Description
 - Members
 - Members@odata.count
 
-#### /redfish/v1/AccountService/Accounts/{ManagerAccountId}/
+### /redfish/v1/AccountService/Accounts/{ManagerAccountId}/
 
-##### ManagerAccount
+#### ManagerAccount
 
 - AccountTypes
 - Description
@@ -89,26 +89,26 @@
 - RoleId
 - UserName
 
-#### /redfish/v1/AccountService/LDAP/Certificates/
+### /redfish/v1/AccountService/LDAP/Certificates/
 
-##### CertificateCollection
+#### CertificateCollection
 
 - Description
 - Members
 - Members@odata.count
 
-#### /redfish/v1/AccountService/Roles/
+### /redfish/v1/AccountService/Roles/
 
-##### RoleCollection
+#### RoleCollection
 
 - Description
 - Members
   - By default will contain 3 roles, "Administrator", "Operator", and "ReadOnly"
 - Members@odata.count
 
-#### /redfish/v1/AccountService/Roles/{RoleId}/
+### /redfish/v1/AccountService/Roles/{RoleId}/
 
-##### Role
+#### Role
 
 - AssignedPrivileges
   - For the default roles, the following privileges will be assigned by default
@@ -123,32 +123,32 @@
 - OemPrivileges
 - RoleId
 
-#### /redfish/v1/CertificateService/
+### /redfish/v1/CertificateService/
 
-##### CertificateService
+#### CertificateService
 
 - Actions
 - CertificateLocations
 - Description
 
-#### /redfish/v1/CertificateService/CertificateLocations/
+### /redfish/v1/CertificateService/CertificateLocations/
 
-##### CertificateLocations
+#### CertificateLocations
 
 - Description
 - Links/Certificates
 - Links/Certificates@odata.count
 
-#### /redfish/v1/Chassis/
+### /redfish/v1/Chassis/
 
-##### ChassisCollection
+#### ChassisCollection
 
 - Members
 - Members@odata.count
 
-#### /redfish/v1/Chassis/{ChassisId}/
+### /redfish/v1/Chassis/{ChassisId}/
 
-##### Chassis
+#### Chassis
 
 - Actions
 - ChassisType
@@ -165,14 +165,14 @@
   - Shall be included if component contains temperature sensors, otherwise shall
     be omitted.
 
-#### /redfish/v1/Chassis/{ChassisId}/Drive/
+### /redfish/v1/Chassis/{ChassisId}/Drive/
 
 #### Drive
 
 - Members (This is dependent on a entity manager association from Chassis to
-  Drives, The name of the association is "chassis<->drive")
+  Drives, The name of the association is `chassis<->drive`)
 
-#### /redfish/v1/Chassis/{ChassisId}/Drive/{DriveId}/
+### /redfish/v1/Chassis/{ChassisId}/Drive/{DriveId}/
 
 #### Drive
 
@@ -181,30 +181,30 @@
 - Status (this is dependant on a entity manager association from Chassis to
   Drives)
 
-#### /redfish/v1/Chassis/{ChassisId}/EnvironmentMetrics/
+### /redfish/v1/Chassis/{ChassisId}/EnvironmentMetrics/
 
-##### EnvironmentMetrics
+#### EnvironmentMetrics
 
-#### /redfish/v1/Chassis/{ChassisId}/Power/
+### /redfish/v1/Chassis/{ChassisId}/Power/
 
-##### Power
+#### Power
 
 - PowerControl
 - PowerSupplies
 - Redundancy
 - Voltages
 
-#### /redfish/v1/Chassis/{ChassisId}/Sensors/
+### /redfish/v1/Chassis/{ChassisId}/Sensors/
 
-##### SensorCollection
+#### SensorCollection
 
 - Description
 - Members
 - Members@odata.count
 
-#### /redfish/v1/Chassis/{ChassisId}/Sensors/{Id}/
+### /redfish/v1/Chassis/{ChassisId}/Sensors/{Id}/
 
-##### Sensor
+#### Sensor
 
 - Reading
 - ReadingRangeMax
@@ -214,17 +214,17 @@
 - Status
 - Thresholds
 
-#### /redfish/v1/Chassis/{ChassisId}/Thermal/
+### /redfish/v1/Chassis/{ChassisId}/Thermal/
 
-##### Thermal
+#### Thermal
 
 - Fans
 - Redundancy
 - Temperatures
 
-#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Temperatures/{SensorName}/
+### /redfish/v1/Chassis/{ChassisId}/Thermal#/Temperatures/{SensorName}/
 
-##### Temperature
+#### Temperature
 
 - MemberId
 - Status
@@ -237,9 +237,9 @@
 - MaxReadingRange _threshold fields only present if defined for sensor,
   otherwise absent_
 
-#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Fans/{FanName}/
+### /redfish/v1/Chassis/{ChassisId}/Thermal#/Fans/{FanName}/
 
-##### Fan
+#### Fan
 
 - MemberId
 - Status
@@ -254,9 +254,9 @@
 - Redundancy _threshold fields only present if defined for sensor, otherwise
   absent_
 
-#### /redfish/v1/Chassis/{ChassisId}/Thermal#/Redundancy/{RedundancyName}/
+### /redfish/v1/Chassis/{ChassisId}/Thermal#/Redundancy/{RedundancyName}/
 
-##### Redundancy
+#### Redundancy
 
 - MemberId
 - RedundancySet
@@ -265,21 +265,15 @@
 - MinNumNeeded
 - MaxNumSupported
 
-#### /redfish/v1/Chassis/{ChassisId}/ThermalSubsystem
+### /redfish/v1/Chassis/{ChassisId}/ThermalSubsystem
 
-##### ThermalSubsystem
+#### ThermalSubsystem
 
 - Status
 
-#### /redfish/v1/Chassis/{ChassisId}/Power/
+### /redfish/v1/Chassis/{ChassisId}/Power#/PowerControl/{ControlName}/
 
-##### Power
-
-PowerControl Voltages PowerSupplies Redundancy
-
-#### /redfish/v1/Chassis/{ChassisId}/Power#/PowerControl/{ControlName}/
-
-##### PowerControl
+#### PowerControl
 
 - MemberId
 - PowerConsumedWatts
@@ -290,9 +284,9 @@
 - RelatedItem
   - Should list systems and related chassis
 
-#### /redfish/v1/Chassis/{ChassisId}/Power#/Voltages/{VoltageName}/
+### /redfish/v1/Chassis/{ChassisId}/Power#/Voltages/{VoltageName}/
 
-##### Voltage
+#### Voltage
 
 - MemberId
 - Status
@@ -306,9 +300,9 @@
 - PhysicalContext
 - RelatedItem
 
-#### /redfish/v1/Chassis/{ChassisId}/Power#/PowerSupplies/{PSUName}/
+### /redfish/v1/Chassis/{ChassisId}/Power#/PowerSupplies/{PSUName}/
 
-##### PowerSupply
+#### PowerSupply
 
 - MemberId
 - Status
@@ -321,9 +315,9 @@
 - RelatedItem
 - Redundancy
 
-#### /redfish/v1/Chassis/{ChassisId}/Power#/Redundancy/{RedundancyName}/
+### /redfish/v1/Chassis/{ChassisId}/Power#/Redundancy/{RedundancyName}/
 
-##### Redundancy
+#### Redundancy
 
 - MemberId
 - RedundancySet
@@ -332,9 +326,9 @@
 - MinNumNeeded
 - MaxNumSupported
 
-#### /redfish/v1/EventService/
+### /redfish/v1/EventService/
 
-##### EventService
+#### EventService
 
 - Actions
 - DeliveryRetryAttempts
@@ -348,16 +342,16 @@
 - Status
 - Subscriptions
 
-#### /redfish/v1/EventService/Subscriptions/
+### /redfish/v1/EventService/Subscriptions/
 
-##### EventDestinationCollection
+#### EventDestinationCollection
 
 - Members
 - Members@odata.count
 
-#### /redfish/v1/EventService/Subscriptions/{EventName}/
+### /redfish/v1/EventService/Subscriptions/{EventName}/
 
-##### EventDestination
+#### EventDestination
 
 - Id
 - Destination
@@ -366,17 +360,17 @@
 - OriginResources
 - Protocol
 
-#### /redfish/v1/JsonSchemas/
+### /redfish/v1/JsonSchemas/
 
-##### JsonSchemaFileCollection
+#### JsonSchemaFileCollection
 
 - Description
 - Members@odata.count
 - Members
 
-#### /redfish/v1/JsonSchemas/{Id}/
+### /redfish/v1/JsonSchemas/{Id}/
 
-##### JsonSchemaFile
+#### JsonSchemaFile
 
 - Schema
 - Description
@@ -385,16 +379,16 @@
 - Location
 - Location@odata.count
 
-#### /redfish/v1/Managers/
+### /redfish/v1/Managers/
 
-##### ManagerCollection
+#### ManagerCollection
 
 - Members
 - Members@odata.count
 
-#### /redfish/v1/Managers/bmc/
+### /redfish/v1/Managers/bmc/
 
-##### Manager
+#### Manager
 
 - Actions
 - DateTime
@@ -427,17 +421,17 @@
 - Status
 - UUID
 
-#### /redfish/v1/Managers/bmc/EthernetInterfaces/
+### /redfish/v1/Managers/bmc/EthernetInterfaces/
 
-##### EthernetInterfaceCollection
+#### EthernetInterfaceCollection
 
 - Description
 - Members
 - Members@odata.count
 
-#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/
+### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/
 
-##### EthernetInterface
+#### EthernetInterface
 
 - DHCPv4
 - DHCPv6
@@ -459,14 +453,14 @@
 - Status
 - VLANs
 
-#### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/VLANs/
+### /redfish/v1/Managers/bmc/EthernetInterfaces/{EthernetInterfaceId}/VLANs/
 
-##### VLanNetworkInterfaceCollection
+#### VLanNetworkInterfaceCollection
 
 - Members
 - Members@odata.count
 
-#### /redfish/v1/Managers/bmc/LogServices/
+### /redfish/v1/Managers/bmc/LogServices/
 
 The [LogService][2] resource provides properties for monitoring and configuring
 events for the service or resource to which it is associated.
@@ -493,17 +487,15 @@
 These two implementations do not work together, so choosing one will disable the
 other.
 
-#### /redfish/v1/Managers/bmc/LogServices/
-
-##### LogServiceCollection
+#### LogServiceCollection
 
 - Description
 - Members
 - Members@odata.count
 
-#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/
+### /redfish/v1/Managers/bmc/LogServices/RedfishLog/
 
-##### LogService
+#### LogService
 
 - Entries
 - OverWritePolicy
@@ -512,17 +504,17 @@
 - DateTime
 - MaxNumberOfRecords
 
-#### /redfish/v1/Managers/bmc/LogServices/RedfishLog/Entries/{LogEntryId}/
+### /redfish/v1/Managers/bmc/LogServices/RedfishLog/Entries/{LogEntryId}/
 
-##### LogEntry
+#### LogEntry
 
 - Message
 - Created
 - EntryType
 
-#### /redfish/v1/Managers/bmc/NetworkProtocol/
+### /redfish/v1/Managers/bmc/NetworkProtocol/
 
-##### ManagerNetworkProtocol
+#### ManagerNetworkProtocol
 
 - Description
 - FQDN
@@ -534,17 +526,17 @@
 - SSH
 - Status
 
-#### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/
+### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/
 
-##### CertificateCollection
+#### CertificateCollection
 
 - Description
 - Members
 - Members@odata.count
 
-#### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/{CertificateId}/
+### /redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/{CertificateId}/
 
-##### Certificate
+#### Certificate
 
 - CertificateString
 - Description
@@ -554,25 +546,25 @@
 - ValidNotAfter
 - ValidNotBefore
 
-#### /redfish/v1/Managers/bmc/Truststore/Certificates/
+### /redfish/v1/Managers/bmc/Truststore/Certificates/
 
-##### CertificateCollection
+#### CertificateCollection
 
 - Description
 - error
 
-#### /redfish/v1/Registries/
+### /redfish/v1/Registries/
 
-##### MessageRegistryFileCollection
+#### MessageRegistryFileCollection
 
 - Description
 - Members
   - Should support Base, CommonMessages, and EventingMessages
 - Members@odata.count
 
-#### /redfish/v1/Registries/{MessageRegistryFileId}/
+### /redfish/v1/Registries/{MessageRegistryFileId}/
 
-##### MessageRegistryFile
+#### MessageRegistryFile
 
 - Description
 - Languages
@@ -581,43 +573,43 @@
 - Location@odata.count
 - Registry
 
-#### /redfish/v1/SessionService/
+### /redfish/v1/SessionService/
 
-##### SessionService
+#### SessionService
 
 - Description
 - ServiceEnabled
 - SessionTimeout
 - Sessions
 
-#### /redfish/v1/SessionService/Sessions/
+### /redfish/v1/SessionService/Sessions/
 
-##### SessionCollection
+#### SessionCollection
 
 - Description
 - Members
 - Members@odata.count
 
-#### /redfish/v1/SessionService/Sessions/{SessionId}/
+### /redfish/v1/SessionService/Sessions/{SessionId}/
 
-##### Session
+#### Session
 
 - ClientOriginIPAddress
 - Description
 - Oem
 - UserName
 
-#### /redfish/v1/Systems/
+### /redfish/v1/Systems/
 
-##### ComputerSystemCollection
+#### ComputerSystemCollection
 
 - Members
   - Should support one system
 - Members@odata.count
 
-#### /redfish/v1/Systems/system/Bios/
+### /redfish/v1/Systems/system/Bios/
 
-##### Bios
+#### Bios
 
 - Actions
 - Description
@@ -625,9 +617,9 @@
 - Links/SoftwareImages
 - Links/SoftwareImages@odata.count
 
-#### /redfish/v1/Systems/system/
+### /redfish/v1/Systems/system/
 
-##### ComputerSystem
+#### ComputerSystem
 
 - Actions
 - AssetTag
@@ -664,26 +656,26 @@
 - SubModel
 - SystemType
 
-#### /redfish/v1/Systems/system/EthernetInterfaces/
+### /redfish/v1/Systems/system/EthernetInterfaces/
 
-##### EthernetInterfaceCollection
+#### EthernetInterfaceCollection
 
 - Members
 - Members@odata.count
 - Description
 
-#### /redfish/v1/Systems/system/LogServices/
+### /redfish/v1/Systems/system/LogServices/
 
-##### LogServiceCollection
+#### LogServiceCollection
 
 - Description
 - Members
   - Should default to one member, named SEL
 - Members@odata.count
 
-#### /redfish/v1/Systems/system/LogServices/EventLog/
+### /redfish/v1/Systems/system/LogServices/EventLog/
 
-##### LogService
+#### LogService
 
 - Actions
 - DateTime
@@ -692,17 +684,17 @@
 - Entries
 - OverWritePolicy
 
-#### /redfish/v1/Systems/system/LogServices/EventLog/Entries/
+### /redfish/v1/Systems/system/LogServices/EventLog/Entries/
 
-##### LogEntryCollection
+#### LogEntryCollection
 
 - Description
 - Members
 - Members@odata.count
 
-#### /redfish/v1/Systems/system/LogServices/EventLog/Entries/{LogEntryId}/
+### /redfish/v1/Systems/system/LogServices/EventLog/Entries/{LogEntryId}/
 
-##### LogEntry
+#### LogEntry
 
 - AdditionalDataURI
 - Created
@@ -712,18 +704,18 @@
 - Resolved
 - Severity
 
-#### /redfish/v1/Systems/system/LogServices/SEL/Entries/
+### /redfish/v1/Systems/system/LogServices/SEL/Entries/
 
-##### LogEntryCollection
+#### LogEntryCollection
 
 - Members
 - Members@odata.count
 - Description
 - @odata.nextLink
 
-#### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId}/
+### /redfish/v1/Systems/system/LogServices/SEL/Entries/{LogEntryId}/
 
-##### LogEntry
+#### LogEntry
 
 - MessageArgs
 - Severity
@@ -734,16 +726,16 @@
 - EntryCode
 - EntryType
 
-#### /redfish/v1/Systems/system/Memory/
+### /redfish/v1/Systems/system/Memory/
 
-##### MemoryCollection
+#### MemoryCollection
 
 - Members
 - Members@odata.count
 
-#### /redfish/v1/Systems/system/Memory/{MemoryId}/
+### /redfish/v1/Systems/system/Memory/{MemoryId}/
 
-##### Memory
+#### Memory
 
 - AllowedSpeedsMHz
 - BaseModuleType
@@ -761,32 +753,32 @@
 - SparePartNumber
 - Status
 
-#### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics/
+### /redfish/v1/Systems/system/Memory/{MemoryId}/MemoryMetrics/
 
-##### MemoryMetrics
+#### MemoryMetrics
 
 - Description
 - HealthData
 
-#### /redfish/v1/Systems/system/PCIeDevices/
+### /redfish/v1/Systems/system/PCIeDevices/
 
-##### PCIeDeviceCollection
+#### PCIeDeviceCollection
 
 - Description
 - Members
 - Members@odata.count
 
-#### /redfish/v1/Systems/system/Processors/
+### /redfish/v1/Systems/system/Processors/
 
-##### ProcessorCollection
+#### ProcessorCollection
 
 - Members
   - Should Support CPU1 and CPU2 for dual socket systems
 - Members@odata.count
 
-#### /redfish/v1/Systems/system/Processors/{ProcessorId}/
+### /redfish/v1/Systems/system/Processors/{ProcessorId}/
 
-##### Processor
+#### Processor
 
 - InstructionSet
 - Manufacturer
@@ -803,32 +795,32 @@
 - TotalThreads
 - Version
 
-#### /redfish/v1/Systems/system/Storage/
+### /redfish/v1/Systems/system/Storage/
 
-##### StorageCollection
+#### StorageCollection
 
 - Members
 - Members@odata.count
 
-#### /redfish/v1/Systems/system/Storage/{StorageId}/
+### /redfish/v1/Systems/system/Storage/{StorageId}/
 
-##### Storage
+#### Storage
 
 - Drives
 - Drives@odata.count
 - Status
 
-#### /redfish/v1/Systems/system/Storage/{StorageId}/Drive/{DriveId}/
+### /redfish/v1/Systems/system/Storage/{StorageId}/Drive/{DriveId}/
 
-##### Storage
+#### Storage
 
 - CapacityBytes
 - Links
 - Status
 
-#### /redfish/v1/TaskService/
+### /redfish/v1/TaskService/
 
-##### TaskService
+#### TaskService
 
 - CompletedTaskOverWritePolicy
 - DateTime
@@ -837,16 +829,16 @@
 - Status
 - Tasks
 
-#### /redfish/v1/TaskService/Tasks/
+### /redfish/v1/TaskService/Tasks/
 
-##### TaskCollection
+#### TaskCollection
 
 - Members
 - Members@odata.count
 
-#### /redfish/v1/TelemetryService/
+### /redfish/v1/TelemetryService/
 
-##### TelemetryService
+#### TelemetryService
 
 - MaxReports
 - MetricReportDefinitions
@@ -855,30 +847,30 @@
 - Status
 - Triggers
 
-#### /redfish/v1/TelemetryService/MetricReportDefinitions/
+### /redfish/v1/TelemetryService/MetricReportDefinitions/
 
-##### MetricReportDefinitionCollection
+#### MetricReportDefinitionCollection
 
 - Members
 - Members@odata.count
 
-#### /redfish/v1/TelemetryService/MetricReports/
+### /redfish/v1/TelemetryService/MetricReports/
 
-##### MetricReportCollection
+#### MetricReportCollection
 
 - Members
 - Members@odata.count
 
-#### /redfish/v1/TelemetryService/Triggers/
+### /redfish/v1/TelemetryService/Triggers/
 
-##### TriggersCollection
+#### TriggersCollection
 
 - Members
 - Members@odata.count
 
-#### /redfish/v1/UpdateService/
+### /redfish/v1/UpdateService/
 
-##### UpdateService
+#### UpdateService
 
 - Actions
 - Description
@@ -888,17 +880,17 @@
 - MaxImageSizeBytes
 - ServiceEnabled
 
-#### /redfish/v1/UpdateService/FirmwareInventory/
+### /redfish/v1/UpdateService/FirmwareInventory/
 
-##### SoftwareInventoryCollection
+#### SoftwareInventoryCollection
 
 - Members
   - Should Support BMC, ME, CPLD and BIOS
 - Members@odata.count
 
-#### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}/
+### /redfish/v1/UpdateService/FirmwareInventory/{SoftwareInventoryId}/
 
-##### SoftwareInventory
+#### SoftwareInventory
 
 - Description
 - RelatedItem@odata.count
diff --git a/TESTING.md b/TESTING.md
index f335392..e1112e7 100644
--- a/TESTING.md
+++ b/TESTING.md
@@ -19,7 +19,7 @@
   directions in the gerrit setup document.
 - Clone bmcweb from gerrit
 
-  ```
+  ```sh
   git clone ssh://openbmc.gerrit/openbmc/bmcweb/
   ```
 
@@ -28,7 +28,7 @@
 
 - Reduce binary size by stripping it when ready for testing
 
-  ```
+  ```sh
   arm-openbmc-linux-gnueabi-strip bmcweb
   ```
 
@@ -38,7 +38,7 @@
 
 - Copy your bmcweb you want to test to /tmp/ in QEMU
 
-  ```
+  ```sh
   scp -P 2222 bmcweb root@127.0.0.1:/tmp/
   ```
 
@@ -48,7 +48,7 @@
 
 - Stop bmcweb service within your QEMU session
 
-  ```
+  ```sh
   systemctl stop bmcweb
   ```
 
@@ -61,7 +61,7 @@
 - If running within a system that has read-only /usr/ filesystem, issue the
   following commands one time per QEMU boot to make the filesystem writeable
 
-  ```
+  ```sh
   mkdir -p /var/persist/usr
   mkdir -p /var/persist/work/usr
   mount -t overlay -o lowerdir=/usr,upperdir=/var/persist/usr,workdir=/var/persist/work/usr overlay /usr
@@ -69,20 +69,20 @@
 
 - Remove the existing bmcweb from the filesystem in QEMU
 
-  ```
+  ```sh
   rm /usr/bin/bmcweb
   ```
 
 - Link to your new bmcweb in /tmp/
 
-  ```
+  ```sh
   ln -sf /tmp/bmcweb /usr/bin/bmcweb
   ```
 
 - Test your changes. bmcweb will be started automatically upon your first REST
   or Redfish command
 
-  ```
+  ```sh
   curl -c cjar -b cjar -k -X POST https://127.0.0.1:2443/login -d "{\"data\": [ \"root\", \"0penBmc\" ] }"
   curl -c cjar -b cjar -k -X GET https://127.0.0.1:2443/xyz/openbmc_project/state/bmc0
   ```
