diff --git a/README.md b/README.md
index 86969c3..f37c241 100644
--- a/README.md
+++ b/README.md
@@ -75,6 +75,46 @@ RX: {'sID': 2354590730, 'msgID': 3182729968, 'resource': '/ci/services', 'versio
RX: {'sID': 2354590730, 'msgID': 3182729969, 'resource': '/iz/info', 'version': 1, 'action': 'RESPONSE', 'data': [{'deviceID': '....', 'eNumber': 'SX65EX56CN/11', 'brand': 'SIEMENS', 'vib': 'SX65EX56CN', 'mac': '....', 'haVersion': '1.4', 'swVersion': '3.2.10.20200911163726', 'hwVersion': '2.0.0.2', 'deviceType': 'Dishwasher', 'deviceInfo': '', 'customerIndex': '11', 'serialNumber': '....', 'fdString': '0201', 'shipSki': '....'}]}
```
+## Feature UID mapping
+
There are other things that can be hooked in the application
to get the mappings of the `uid` to actual menu settings and
-XML files of the configuratio parameters. TODO: document this.
+XML files of the configuration parameters.
+
+In the `xml/` directory are some of the device descriptions
+and feature maps that the app downloads from the Home Connect
+servers. Note that the XML has unadorned hex, while the
+websocket messages are in decimal.
+
+For instance, when the dishwasher door is closed and then
+re-opened, it sends the messages for `'uid':512`, which is 0x020F hex:
+
+```
+RX: {... 'data': [{'uid': 527, 'value': 1}]}
+RX: {... 'data': [{'uid': 527, 'value': 0}]}
+```
+
+In the `xml/dishwasher-description.xml` there is a `statusList`
+that says uid 0x020f is a readonly value that uses enum 0x0201:
+
+```
+
+```
+
+In the `xml/dishwasher-featuremap.xml` there is a mapping of feature
+reference UIDs to names:
+
+```
+ BSH.Common.Status.DoorState
+```
+
+as well as mappings of enum ids to enum names and values:
+
+```
+
+ Open
+ Closed
+
+```
+
+