diff --git a/README.md b/README.md
index d6157c9..31a3983 100644
--- a/README.md
+++ b/README.md
@@ -5,25 +5,25 @@
 #### Cablecheck - SubCommand 0x00
 
 The cablecheck command checks whether the BMC is seeing traffic between itself
-and the host's NIC.  Sys specifies which if_name is expected to be connected.
-The BMC presently only checks traffic on the interface specified.  There are
-now ethernet statistics available over IPMI, which can be checked directly in
-lieu of this.
+and the host's NIC. Sys specifies which if_name is expected to be connected. The
+BMC presently only checks traffic on the interface specified. There are now
+ethernet statistics available over IPMI, which can be checked directly in lieu
+of this.
 
 Request
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x00|Subcommand
-|0x01|If_name length|Where you expect the cable, eth0 or eth1, etc
-|0x02 ... |The name|The string, not null-terminated
+| Byte(s)  | Value          | Data                                          |
+| -------- | -------------- | --------------------------------------------- |
+| 0x00     | 0x00           | Subcommand                                    |
+| 0x01     | If_name length | Where you expect the cable, eth0 or eth1, etc |
+| 0x02 ... | The name       | The string, not null-terminated               |
 
 Response
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x00|Subcommand
-|0x01|0x00/0x01|0 for false, 1 for true
+| Byte(s) | Value     | Data                    |
+| ------- | --------- | ----------------------- |
+| 0x00    | 0x00      | Subcommand              |
+| 0x01    | 0x00/0x01 | 0 for false, 1 for true |
 
 #### CpldVersion - SubCommand 0x01
 
@@ -32,21 +32,20 @@
 
 Request
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x01|Subcommand
-|0x01|CPLD ID|A one-byte identifier for the CPLD file to read, unsigned byte.
-
+| Byte(s) | Value   | Data                                                            |
+| ------- | ------- | --------------------------------------------------------------- |
+| 0x00    | 0x01    | Subcommand                                                      |
+| 0x01    | CPLD ID | A one-byte identifier for the CPLD file to read, unsigned byte. |
 
 Response
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x01|Subcommand
-|0x01|Major|Major version
-|0x02|Minor|Minor Version
-|0x03|Sub 1|Third version number
-|0x04|Sub 2|Fourth version number
+| Byte(s) | Value | Data                  |
+| ------- | ----- | --------------------- |
+| 0x00    | 0x01  | Subcommand            |
+| 0x01    | Major | Major version         |
+| 0x02    | Minor | Minor Version         |
+| 0x03    | Sub 1 | Third version number  |
+| 0x04    | Sub 2 | Fourth version number |
 
 **Per the above, if the version number doesn't fit in a byte it'll be cast to
 size.**
@@ -54,29 +53,29 @@
 #### GetEthDevice - SubCommand 0x02
 
 The BMC itself must have hard-coded into the image, which ethernet device is
-connected to the host NIC.  This is true also in the mapping of ethernet device
-to channel number.  Alternatively, you can pass a specific interface
-name for channel lookup.  The channel number is used to configure the ethernet device
-over IPMI, instead of the interface name.  This is because we leverage the
-current IPMI command set to read and write the networking configuration.  Sys
-can be programmed already to have this information in the board protobuf,
-however, this information -- can be read from the BMC over IPMI.
+connected to the host NIC. This is true also in the mapping of ethernet device
+to channel number. Alternatively, you can pass a specific interface name for
+channel lookup. The channel number is used to configure the ethernet device over
+IPMI, instead of the interface name. This is because we leverage the current
+IPMI command set to read and write the networking configuration. Sys can be
+programmed already to have this information in the board protobuf, however, this
+information -- can be read from the BMC over IPMI.
 
 Request
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x02|Subcommand
-|0x01... |if_name| (optional) The interface name, not null-terminated
+| Byte(s) | Value   | Data                                               |
+| ------- | ------- | -------------------------------------------------- |
+| 0x00    | 0x02    | Subcommand                                         |
+| 0x01... | if_name | (optional) The interface name, not null-terminated |
 
 Response
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x02|Subcommand
-|0x01|Channel number|The IPMI channel number for use with the network configuration commands (such as reading the MAC or IP address of the BMC).
-|0x02|if_name length|The length of the if_name in bytes.
-|0x03... |if_name|The interface name, not null-terminated
+| Byte(s) | Value          | Data                                                                                                                        |
+| ------- | -------------- | --------------------------------------------------------------------------------------------------------------------------- |
+| 0x00    | 0x02           | Subcommand                                                                                                                  |
+| 0x01    | Channel number | The IPMI channel number for use with the network configuration commands (such as reading the MAC or IP address of the BMC). |
+| 0x02    | if_name length | The length of the if_name in bytes.                                                                                         |
+| 0x03... | if_name        | The interface name, not null-terminated                                                                                     |
 
 #### DelayedHardReset - SubCommand 0x03
 
@@ -85,37 +84,36 @@
 
 Request
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x03|Subcommand
-|0x01..0x04| |Seconds to delay (uint32)
+| Byte(s)    | Value | Data                      |
+| ---------- | ----- | ------------------------- |
+| 0x00       | 0x03  | Subcommand                |
+| 0x01..0x04 |       | Seconds to delay (uint32) |
 
 Response
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x03|Subcommand
+| Byte(s) | Value | Data       |
+| ------- | ----- | ---------- |
+| 0x00    | 0x03  | Subcommand |
 
 ### GetPCIeSlotsCount - SubCommand 0x04
 
-Sys can get the total number of PCIe slots from BMC using this command. When
-BMC receives this command, BMC can enumerate over all the PCIe slots and create
-a hashmap with all the available PCIe slot name - I2C bus number mappings. BMC
-can then send the total number of PCIe slots as part of this command response.
+Sys can get the total number of PCIe slots from BMC using this command. When BMC
+receives this command, BMC can enumerate over all the PCIe slots and create a
+hashmap with all the available PCIe slot name - I2C bus number mappings. BMC can
+then send the total number of PCIe slots as part of this command response.
 
 Request
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x04|Subcommand
-
+| Byte(s) | Value | Data       |
+| ------- | ----- | ---------- |
+| 0x00    | 0x04  | Subcommand |
 
 Response
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x04|Subcommand
-|0x01|Total number of PCIe slots|Total number of PCIe slots
+| Byte(s) | Value                      | Data                       |
+| ------- | -------------------------- | -------------------------- |
+| 0x00    | 0x04                       | Subcommand                 |
+| 0x01    | Total number of PCIe slots | Total number of PCIe slots |
 
 ### GetPCIeSlotI2cBusMapping - SubCommand 0x05
 
@@ -127,20 +125,19 @@
 
 Request
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x05|Subcommand
-|0x01|Entry ID|Entry ID ranging from 0 to N - 1
-
+| Byte(s) | Value    | Data                             |
+| ------- | -------- | -------------------------------- |
+| 0x00    | 0x05     | Subcommand                       |
+| 0x01    | Entry ID | Entry ID ranging from 0 to N - 1 |
 
 Response
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x05|Subcommand
-|0x01|I2C bus number|The I2C bus number which is input to the above PCIe slot
-|0x02|PCIe slot name length|The PCIe slot name length
-|0x03...|PCIe slot name|The PCIe slot name without null terminator
+| Byte(s) | Value                 | Data                                                     |
+| ------- | --------------------- | -------------------------------------------------------- |
+| 0x00    | 0x05                  | Subcommand                                               |
+| 0x01    | I2C bus number        | The I2C bus number which is input to the above PCIe slot |
+| 0x02    | PCIe slot name length | The PCIe slot name length                                |
+| 0x03... | PCIe slot name        | The PCIe slot name without null terminator               |
 
 ### GetEntityName - SubCommand 0x06
 
@@ -151,19 +148,19 @@
 
 Request
 
-|Byte(s) |Value |Data
-|--------|------|----
-|0x00|0x06|Subcommand
-|0x01|Entity ID|Entity ID
-|0x02|Entity Instance|Entity Instance
+| Byte(s) | Value           | Data            |
+| ------- | --------------- | --------------- |
+| 0x00    | 0x06            | Subcommand      |
+| 0x01    | Entity ID       | Entity ID       |
+| 0x02    | Entity Instance | Entity Instance |
 
 Response
 
-|Byte(s) |Value |Data
-|--------|------|----
-|0x00|0x06|Subcommand
-|0x01|Entity name length (say N)|Entity name length
-|0x02...0x02 + N - 1|Entity name|Entity name without null terminator
+| Byte(s)             | Value                      | Data                                |
+| ------------------- | -------------------------- | ----------------------------------- |
+| 0x00                | 0x06                       | Subcommand                          |
+| 0x01                | Entity name length (say N) | Entity name length                  |
+| 0x02...0x02 + N - 1 | Entity name                | Entity name without null terminator |
 
 ### GetMachineName - SubCommand 0x07
 
@@ -172,17 +169,17 @@
 
 Request
 
-|Byte(s) |Value |Data
-|--------|------|----
-|0x00|0x06|Subcommand
+| Byte(s) | Value | Data       |
+| ------- | ----- | ---------- |
+| 0x00    | 0x06  | Subcommand |
 
 Response
 
-|Byte(s) |Value |Data
-|--------|------|----
-|0x00|0x06|Subcommand
-|0x01|Model name length (say N)|Model name length
-|0x02...0x02 + N - 1|Model name|Model name without null terminator
+| Byte(s)             | Value                     | Data                               |
+| ------------------- | ------------------------- | ---------------------------------- |
+| 0x00                | 0x06                      | Subcommand                         |
+| 0x01                | Model name length (say N) | Model name length                  |
+| 0x02...0x02 + N - 1 | Model name                | Model name without null terminator |
 
 ### HardResetOnShutdown - SubCommand 0x08
 
@@ -190,16 +187,15 @@
 
 Request
 
-|Byte(s) |Value |Data
-|--------|------|----
-|0x00|0x08|Subcommand
+| Byte(s) | Value | Data       |
+| ------- | ----- | ---------- |
+| 0x00    | 0x08  | Subcommand |
 
 Response
 
-|Byte(s) |Value |Data
-|--------|------|----
-|0x00|0x08|Subcommand
-
+| Byte(s) | Value | Data       |
+| ------- | ----- | ---------- |
+| 0x00    | 0x08  | Subcommand |
 
 ### GetFlashSize - SubCommand 0x09
 
@@ -207,34 +203,35 @@
 
 Request
 
-|Byte(s) |Value |Data
-|--------|------|----
-|0x00|0x09|Subcommand
+| Byte(s) | Value | Data       |
+| ------- | ----- | ---------- |
+| 0x00    | 0x09  | Subcommand |
 
 Response
 
-|Byte(s) |Value |Data
-|--------|------|----
-|0x00|0x09|Subcommand
-|0x01...0x04|Flash size|Flash size
+| Byte(s)     | Value      | Data       |
+| ----------- | ---------- | ---------- |
+| 0x00        | 0x09       | Subcommand |
+| 0x01...0x04 | Flash size | Flash size |
 
 ### HostPowerOff - SubCommand 0x0A
-Sys command needs to be able to let the BMC knows host attempt S5 shutdown,
-it need power-off the Host gracefully and disable the watchdog with given time
+
+Sys command needs to be able to let the BMC knows host attempt S5 shutdown, it
+need power-off the Host gracefully and disable the watchdog with given time
 delay.
 
 Request
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x0A|Subcommand
-|0x01..0x04| |Seconds to delay (uint32)
+| Byte(s)    | Value | Data                      |
+| ---------- | ----- | ------------------------- |
+| 0x00       | 0x0A  | Subcommand                |
+| 0x01..0x04 |       | Seconds to delay (uint32) |
 
 Response
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x0A|Subcommand
+| Byte(s) | Value | Data       |
+| ------- | ----- | ---------- |
+| 0x00    | 0x0A  | Subcommand |
 
 ### AccelOobDeviceCount - SubCommand 0x0B
 
@@ -244,16 +241,16 @@
 
 Request
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x0B|Subcommand
+| Byte(s) | Value | Data       |
+| ------- | ----- | ---------- |
+| 0x00    | 0x0B  | Subcommand |
 
 Response
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x0B|Subcommand
-|0x01..0x04| |Number of devices available
+| Byte(s)    | Value | Data                        |
+| ---------- | ----- | --------------------------- |
+| 0x00       | 0x0B  | Subcommand                  |
+| 0x01..0x04 |       | Number of devices available |
 
 ### AccelOobDeviceName - SubCommand 0x0C
 
@@ -269,7 +266,7 @@
 the IPMI packet.
 
 DBus requires all element names to be non-empty strings of ASCII characters
-"[A-Z][a-z][0-9]_", seperated by ASCII '/'. Therefore, all device names will be
+"[A-Z][a-z][0-9]\_", seperated by ASCII '/'. Therefore, all device names will be
 valid ASCII strings (1 byte/character).
 
 For convenience, the name string is followed by a single 0x00 (NULL terminator)
@@ -292,20 +289,20 @@
 
 Request
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x0C|Subcommand
-|0x05| |Length of the name
-|0x06..n| |Name of the device
+| Byte(s) | Value | Data               |
+| ------- | ----- | ------------------ |
+| 0x00    | 0x0C  | Subcommand         |
+| 0x05    |       | Length of the name |
+| 0x06..n |       | Name of the device |
 
 Response
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x0C|Subcommand
-|0x01..0x04| |Index of the device
-|0x05| |Length of the name
-|0x06..n| |Name of the device
+| Byte(s)    | Value | Data                |
+| ---------- | ----- | ------------------- |
+| 0x00       | 0x0C  | Subcommand          |
+| 0x01..0x04 |       | Index of the device |
+| 0x05       |       | Length of the name  |
+| 0x06..n    |       | Name of the device  |
 
 ### AccelOobRead - SubCommand 0x0D
 
@@ -338,34 +335,34 @@
 
 Request
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x0D|Subcommand
-|0x01| |Number of bytes in the device name
-|0x02..n| |Name of the device (from `AccelOobDeviceName`)
-|n+1| |Token
-|n+2..n+10| |Address
-|n+11| |Number of bytes
+| Byte(s)   | Value | Data                                           |
+| --------- | ----- | ---------------------------------------------- |
+| 0x00      | 0x0D  | Subcommand                                     |
+| 0x01      |       | Number of bytes in the device name             |
+| 0x02..n   |       | Name of the device (from `AccelOobDeviceName`) |
+| n+1       |       | Token                                          |
+| n+2..n+10 |       | Address                                        |
+| n+11      |       | Number of bytes                                |
 
 Response
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x0D|Subcommand
-|0x01| |Number of bytes in the device name
-|0x02..n| |Name of the device (no trailing NULL)
-|n+1| |Token
-|n+2..n+10| |Address
-|n+11| |Number of bytes
-|n+12..n+20| |Data
+| Byte(s)    | Value | Data                                  |
+| ---------- | ----- | ------------------------------------- |
+| 0x00       | 0x0D  | Subcommand                            |
+| 0x01       |       | Number of bytes in the device name    |
+| 0x02..n    |       | Name of the device (no trailing NULL) |
+| n+1        |       | Token                                 |
+| n+2..n+10  |       | Address                               |
+| n+11       |       | Number of bytes                       |
+| n+12..n+20 |       | Data                                  |
 
 ### AccelOobWrite - SubCommand 0x0E
 
 Write a PCIe CSR from a device.
 
-All parameters are identical to AccelOobRead (above). The only difference is
-the register data becomes an input parameter (in the Request) instead of an
-output value (in the Response).
+All parameters are identical to AccelOobRead (above). The only difference is the
+register data becomes an input parameter (in the Request) instead of an output
+value (in the Response).
 
 As with read, the register data must be 8 bytes (uint64) in little Endian order.
 If fewer than 8 bytes will be written, only the LSBs will be read and the the
@@ -379,46 +376,46 @@
 
 Request
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x0D|Subcommand
-|0x01| |Number of bytes in the device name
-|0x02..n| |Name of the device (from `AccelOobDeviceName`)
-|n+1| |Token
-|n+2..n+10| |Address
-|n+11| |Number of bytes
-|n+12..n+20| |Data
+| Byte(s)    | Value | Data                                           |
+| ---------- | ----- | ---------------------------------------------- |
+| 0x00       | 0x0D  | Subcommand                                     |
+| 0x01       |       | Number of bytes in the device name             |
+| 0x02..n    |       | Name of the device (from `AccelOobDeviceName`) |
+| n+1        |       | Token                                          |
+| n+2..n+10  |       | Address                                        |
+| n+11       |       | Number of bytes                                |
+| n+12..n+20 |       | Data                                           |
 
 Response
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x0D|Subcommand
-|0x01| |Number of bytes in the device name
-|0x02..n| |Name of the device (no trailing NULL)
-|n+1| |Token
-|n+2..n+10| |Address
-|n+11| |Number of bytes
-|n+12..n+20| |Data
+| Byte(s)    | Value | Data                                  |
+| ---------- | ----- | ------------------------------------- |
+| 0x00       | 0x0D  | Subcommand                            |
+| 0x01       |       | Number of bytes in the device name    |
+| 0x02..n    |       | Name of the device (no trailing NULL) |
+| n+1        |       | Token                                 |
+| n+2..n+10  |       | Address                               |
+| n+11       |       | Number of bytes                       |
+| n+12..n+20 |       | Data                                  |
 
 ### PCIe Bifurcation - SubCommand 0x0F
-Sys command to return the highest level of bifurcation for the
-target PCIe Slot.
+
+Sys command to return the highest level of bifurcation for the target PCIe Slot.
 
 Request
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x0F|Subcommand
-|0x01|PE slot number|Index of the PE slot
+| Byte(s) | Value          | Data                 |
+| ------- | -------------- | -------------------- |
+| 0x00    | 0x0F           | Subcommand           |
+| 0x01    | PE slot number | Index of the PE slot |
 
 Response
 
-|Byte(s) |Value  |Data
-|--------|-------|----
-|0x00|0x0F|Subcommand
-|0x01|Config length (N)|Number of bytes needed for the bifurcation config
-|0x02..0x02 + N - 1|Lanes per device|Each byte represents the number of lanes bonded together for each endpoint device
+| Byte(s)            | Value             | Data                                                                              |
+| ------------------ | ----------------- | --------------------------------------------------------------------------------- |
+| 0x00               | 0x0F              | Subcommand                                                                        |
+| 0x01               | Config length (N) | Number of bytes needed for the bifurcation config                                 |
+| 0x02..0x02 + N - 1 | Lanes per device  | Each byte represents the number of lanes bonded together for each endpoint device |
 
 ### GetBmcMode - SubCommand 0x10
 
@@ -426,13 +423,13 @@
 
 Request
 
-|Byte(s) |Value |Data
-|--------|------|----
-|0x00|0x10|Subcommand
+| Byte(s) | Value | Data       |
+| ------- | ----- | ---------- |
+| 0x00    | 0x10  | Subcommand |
 
 Response
 
-|Byte(s) |Value |Data
-|--------|------|----
-|0x00|0x10|Subcommand
-|0x01|Current BMC MODE|<ul><li>0 -> Non Bare Metal Mode</li><li>1 -> Bare Metal Mode</li><li>2 -> Bare Metal Cleaning Mode</li></ul>
+| Byte(s) | Value            | Data                                                                                                          |
+| ------- | ---------------- | ------------------------------------------------------------------------------------------------------------- |
+| 0x00    | 0x10             | Subcommand                                                                                                    |
+| 0x01    | Current BMC MODE | <ul><li>0 -> Non Bare Metal Mode</li><li>1 -> Bare Metal Mode</li><li>2 -> Bare Metal Cleaning Mode</li></ul> |
