diff --git a/README.md b/README.md
index f4d0b87..1475024 100644
--- a/README.md
+++ b/README.md
@@ -1,115 +1,125 @@
 # Introduction
+
 `phosphor-time-manager` is the time manager service that implements D-Bus
-interface `xyz/openbmc_project/Time/EpochTime.interface.yaml`.
-The user can get or set the BMC's time via this interface.
-
-
+interface `xyz/openbmc_project/Time/EpochTime.interface.yaml`. The user can get
+or set the BMC's time via this interface.
 
 ## Configuration
-phosphor-time-manager is configured by setting `-D` flags that correspond to options
-in `phosphor-time-manager/meson_options.txt`.
-The option names become C++ preprocessor symbols that control which code
-is compiled into the program.
 
-* Compile phosphor-time-manager with default options:
+phosphor-time-manager is configured by setting `-D` flags that correspond to
+options in `phosphor-time-manager/meson_options.txt`. The option names become
+C++ preprocessor symbols that control which code is compiled into the program.
 
-    ```
-       meson builddir
-       ninja -C builddir
-    ```
-* Compile phosphor-time-manager with some configurable options:
+- Compile phosphor-time-manager with default options:
 
-    ```
-       meson builddir -Dbuildtype=minsize  -Dtests=disabled
-       ninja -C builddir
-    ```
-* Generate test coverage report:
+  ```
+     meson builddir
+     ninja -C builddir
+  ```
 
-    ```
-       meson builddir -Db_coverage=true -Dtests=enabled
-       ninja coverage -C builddir test
-    ```
+- Compile phosphor-time-manager with some configurable options:
+
+  ```
+     meson builddir -Dbuildtype=minsize  -Dtests=disabled
+     ninja -C builddir
+  ```
+
+- Generate test coverage report:
+
+  ```
+     meson builddir -Db_coverage=true -Dtests=enabled
+     ninja coverage -C builddir test
+  ```
 
 ### General usage
+
 The service `xyz.openbmc_project.Time.Manager` provides an object on D-Bus:
-* /xyz/openbmc_project/time/bmc
+
+- /xyz/openbmc_project/time/bmc
 
 where each object implements interface `xyz.openbmc_project.Time.EpochTime`.
 
-The user can directly get or set the property `Elapsed` of the objects to get or set
-the time. For example on an authenticated session:
+The user can directly get or set the property `Elapsed` of the objects to get or
+set the time. For example on an authenticated session:
 
-* To get BMC's time:
-   ```
-   ### With busctl on BMC
-   busctl get-property xyz.openbmc_project.Time.Manager \
-       /xyz/openbmc_project/time/bmc xyz.openbmc_project.Time.EpochTime Elapsed
+- To get BMC's time:
 
-   ### With REST API on remote host
-   curl -b cjar -k https://${BMC_IP}/xyz/openbmc_project/time/bmc
-   ```
-* To set BMC's time:
-   ```
-   ### With busctl on BMC
-   busctl set-property xyz.openbmc_project.Time.Manager \
-       /xyz/openbmc_project/time/bmc xyz.openbmc_project.Time.EpochTime \
-       Elapsed t <value-in-microseconds>
+  ```
+  ### With busctl on BMC
+  busctl get-property xyz.openbmc_project.Time.Manager \
+      /xyz/openbmc_project/time/bmc xyz.openbmc_project.Time.EpochTime Elapsed
 
-   ### With REST API on remote host
-   curl -b cjar -k -H "Content-Type: application/json" -X PUT \
-       -d '{"data": 1487304700000000}' \
-       https://${BMC_IP}/xyz/openbmc_project/time/bmc/attr/Elapsed
-   ```
+  ### With REST API on remote host
+  curl -b cjar -k https://${BMC_IP}/xyz/openbmc_project/time/bmc
+  ```
+
+- To set BMC's time:
+
+  ```
+  ### With busctl on BMC
+  busctl set-property xyz.openbmc_project.Time.Manager \
+      /xyz/openbmc_project/time/bmc xyz.openbmc_project.Time.EpochTime \
+      Elapsed t <value-in-microseconds>
+
+  ### With REST API on remote host
+  curl -b cjar -k -H "Content-Type: application/json" -X PUT \
+      -d '{"data": 1487304700000000}' \
+      https://${BMC_IP}/xyz/openbmc_project/time/bmc/attr/Elapsed
+  ```
 
 ### Time settings
-Getting BMC time is always allowed, but setting the time may not be
-allowed depending on the below two settings in the settings manager.
 
-* TimeSyncMethod
-   * NTP: The time is set via NTP server.
-   * MANUAL: The time is set manually.
+Getting BMC time is always allowed, but setting the time may not be allowed
+depending on the below two settings in the settings manager.
+
+- TimeSyncMethod
+  - NTP: The time is set via NTP server.
+  - MANUAL: The time is set manually.
 
 A summary of which cases the time can be set on BMC or HOST:
 
-Mode      | Set BMC Time
---------- | -------------
-NTP       | Fail to set
-MANUAL    | OK
+| Mode   | Set BMC Time |
+| ------ | ------------ |
+| NTP    | Fail to set  |
+| MANUAL | OK           |
 
-* To set an NTP [server](https://tf.nist.gov/tf-cgi/servers.cgi):
-   ```
-   ### With busctl on BMC
-   busctl set-property  xyz.openbmc_project.Network \
-      /xyz/openbmc_project/network/eth0 \
-      xyz.openbmc_project.Network.EthernetInterface NTPServers \
-      as 1 "<ntp_server>"
+- To set an NTP [server](https://tf.nist.gov/tf-cgi/servers.cgi):
 
-   ### With REST API on remote host
-   curl -c cjar -b cjar -k -H "Content-Type: application/json" -X  PUT  -d \
-       '{"data": ["<ntp_server>"] }' \
-       https://${BMC_IP}/xyz/openbmc_project/network/eth0/attr/NTPServers
-   ```
+  ```
+  ### With busctl on BMC
+  busctl set-property  xyz.openbmc_project.Network \
+     /xyz/openbmc_project/network/eth0 \
+     xyz.openbmc_project.Network.EthernetInterface NTPServers \
+     as 1 "<ntp_server>"
 
-* To go into NTP mode
-   ```
-   ### With busctl on BMC
-   busctl set-property xyz.openbmc_project.Settings \
-       /xyz/openbmc_project/time/sync_method xyz.openbmc_project.Time.Synchronization \
-       TimeSyncMethod s "xyz.openbmc_project.Time.Synchronization.Method.NTP"
+  ### With REST API on remote host
+  curl -c cjar -b cjar -k -H "Content-Type: application/json" -X  PUT  -d \
+      '{"data": ["<ntp_server>"] }' \
+      https://${BMC_IP}/xyz/openbmc_project/network/eth0/attr/NTPServers
+  ```
 
-   ### With REST API on remote host
-   curl -c cjar -b cjar -k -H "Content-Type: application/json" -X  PUT  -d \
-       '{"data": "xyz.openbmc_project.Time.Synchronization.Method.NTP" }' \
-       https://${BMC_IP}/xyz/openbmc_project/time/sync_method/attr/TimeSyncMethod
-   ```
+- To go into NTP mode
+
+  ```
+  ### With busctl on BMC
+  busctl set-property xyz.openbmc_project.Settings \
+      /xyz/openbmc_project/time/sync_method xyz.openbmc_project.Time.Synchronization \
+      TimeSyncMethod s "xyz.openbmc_project.Time.Synchronization.Method.NTP"
+
+  ### With REST API on remote host
+  curl -c cjar -b cjar -k -H "Content-Type: application/json" -X  PUT  -d \
+      '{"data": "xyz.openbmc_project.Time.Synchronization.Method.NTP" }' \
+      https://${BMC_IP}/xyz/openbmc_project/time/sync_method/attr/TimeSyncMethod
+  ```
 
 ### Special note on changing NTP setting
-Starting from OpenBMC 2.6 (with systemd v239), systemd's timedated introduces
-a new beahvior that it checks the NTP services' status during setting time,
+
+Starting from OpenBMC 2.6 (with systemd v239), systemd's timedated introduces a
+new beahvior that it checks the NTP services' status during setting time,
 instead of checking the NTP setting:
 
-* When NTP server is set to disabled, and the NTP service is stopping but not
-   stopped, setting time will get an error.
+- When NTP server is set to disabled, and the NTP service is stopping but not
+  stopped, setting time will get an error.
 
 In OpenBMC 2.4 (with systemd v236), the above will always succeed.
 
