diff --git a/Bootloaders/CDC/Descriptors.h b/Bootloaders/CDC/Descriptors.h
index 9c6eb04c9f8ab96a3901b3e30c4ff3c300ba6474..adcac44371d4ab32cfcbf69f552a9076dee73858 100644
--- a/Bootloaders/CDC/Descriptors.h
+++ b/Bootloaders/CDC/Descriptors.h
@@ -149,11 +149,15 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+			
+			// CDC Control Interface
 			USB_Descriptor_Interface_t               CDC_CCI_Interface;
 			USB_Descriptor_CDC_FunctionalHeader_t    CDC_Functional_Header;
 			USB_Descriptor_CDC_FunctionalACM_t       CDC_Functional_ACM;
 			USB_Descriptor_CDC_FunctionalUnion_t     CDC_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC_NotificationEndpoint;
+			
+			// CDC Data Interface
 			USB_Descriptor_Interface_t               CDC_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC_DataInEndpoint;
diff --git a/Bootloaders/DFU/Descriptors.h b/Bootloaders/DFU/Descriptors.h
index 9bc4db5200fadf5de1d65ae630ef0fb5181dd51d..445557f70816b48b401794064a3e6734256f5d0d 100644
--- a/Bootloaders/DFU/Descriptors.h
+++ b/Bootloaders/DFU/Descriptors.h
@@ -161,6 +161,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+			
+			// DFU Interface
 			USB_Descriptor_Interface_t            DFU_Interface;
 			USB_Descriptor_DFU_Functional_t       DFU_Functional;
 		} USB_Descriptor_Configuration_t;
diff --git a/Bootloaders/HID/Descriptors.h b/Bootloaders/HID/Descriptors.h
index 2c2969ed9c33fa49adfeb2601b00f573947e243a..b2fd88e7146308dfb3e4c9ade220a46c04d55187 100644
--- a/Bootloaders/HID/Descriptors.h
+++ b/Bootloaders/HID/Descriptors.h
@@ -47,6 +47,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+			
+			// Generic HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_VendorHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Demos/Device/ClassDriver/AudioInput/Descriptors.h b/Demos/Device/ClassDriver/AudioInput/Descriptors.h
index 05d1fee36ae7ae40ea986b2a2f98ba51b92a31a2..aa551b00cbb3e6dd166648c35460cf936a490e87 100644
--- a/Demos/Device/ClassDriver/AudioInput/Descriptors.h
+++ b/Demos/Device/ClassDriver/AudioInput/Descriptors.h
@@ -59,10 +59,14 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t     Config;
+
+			// Audio Control Interface
 			USB_Descriptor_Interface_t                Audio_ControlInterface;
 			USB_Audio_Descriptor_Interface_AC_t       Audio_ControlInterface_SPC;
 			USB_Audio_Descriptor_InputTerminal_t      Audio_InputTerminal;
 			USB_Audio_Descriptor_OutputTerminal_t     Audio_OutputTerminal;
+
+			// Audio Streaming Interface
 			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt0;
 			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt1;
 			USB_Audio_Descriptor_Interface_AS_t       Audio_StreamInterface_SPC;
diff --git a/Demos/Device/ClassDriver/AudioOutput/Descriptors.h b/Demos/Device/ClassDriver/AudioOutput/Descriptors.h
index ca5c87386685e9a5fb88b39c24bbde1cffb26c00..da95077c420f5c9285704a6c7b580bbd24b5f1d7 100644
--- a/Demos/Device/ClassDriver/AudioOutput/Descriptors.h
+++ b/Demos/Device/ClassDriver/AudioOutput/Descriptors.h
@@ -59,10 +59,14 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t     Config;
+
+			// Audio Control Interface
 			USB_Descriptor_Interface_t                Audio_ControlInterface;
 			USB_Audio_Descriptor_Interface_AC_t       Audio_ControlInterface_SPC;
 			USB_Audio_Descriptor_InputTerminal_t      Audio_InputTerminal;
 			USB_Audio_Descriptor_OutputTerminal_t     Audio_OutputTerminal;
+
+			// Audio Streaming Interface
 			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt0;
 			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt1;
 			USB_Audio_Descriptor_Interface_AS_t       Audio_StreamInterface_SPC;
diff --git a/Demos/Device/ClassDriver/DualVirtualSerial/Descriptors.h b/Demos/Device/ClassDriver/DualVirtualSerial/Descriptors.h
index aa86b0e68f4c78fe600c77d55ee228fcbfd41fdb..4affeafe1f02c3fc68518534e57de5d85f7f4df1 100644
--- a/Demos/Device/ClassDriver/DualVirtualSerial/Descriptors.h
+++ b/Demos/Device/ClassDriver/DualVirtualSerial/Descriptors.h
@@ -74,21 +74,29 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+
+			// First CDC Control Interface
 			USB_Descriptor_Interface_Association_t   CDC1_IAD;
 			USB_Descriptor_Interface_t               CDC1_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC1_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC1_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC1_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC1_ManagementEndpoint;
+
+			// First CDC Data Interface
 			USB_Descriptor_Interface_t               CDC1_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC1_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC1_DataInEndpoint;
+
+			// Second CDC Control Interface
 			USB_Descriptor_Interface_Association_t   CDC2_IAD;
 			USB_Descriptor_Interface_t               CDC2_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC2_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC2_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC2_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC2_ManagementEndpoint;
+
+			// Second CDC Data Interface
 			USB_Descriptor_Interface_t               CDC2_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC2_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC2_DataInEndpoint;
diff --git a/Demos/Device/ClassDriver/GenericHID/Descriptors.h b/Demos/Device/ClassDriver/GenericHID/Descriptors.h
index 0a007f3362a8dda03a9d34792c2238955f4cccb7..e9a2d8363d8ec738aac0655029b6433895fa949b 100644
--- a/Demos/Device/ClassDriver/GenericHID/Descriptors.h
+++ b/Demos/Device/ClassDriver/GenericHID/Descriptors.h
@@ -49,6 +49,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Generic HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_GenericHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Demos/Device/ClassDriver/Joystick/Descriptors.h b/Demos/Device/ClassDriver/Joystick/Descriptors.h
index e1967e633dccbc246d33fc978c2ebd59d6f27b39..cca19b0819ea03ac2f0358a498972ee0c57b6b17 100644
--- a/Demos/Device/ClassDriver/Joystick/Descriptors.h
+++ b/Demos/Device/ClassDriver/Joystick/Descriptors.h
@@ -49,6 +49,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Joystick HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_JoystickHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Demos/Device/ClassDriver/Keyboard/Descriptors.h b/Demos/Device/ClassDriver/Keyboard/Descriptors.h
index 63d47f8d918c397557a6d0d76caf2a4f0383ed3c..538a9d14f79e632fe81096d31f52874186f25171 100644
--- a/Demos/Device/ClassDriver/Keyboard/Descriptors.h
+++ b/Demos/Device/ClassDriver/Keyboard/Descriptors.h
@@ -49,6 +49,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Keyboard HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_KeyboardHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.h b/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.h
index 0550e69afe6cc142370eab531fea91cf84acc1c6..8dc2eb8cb5f6d83da8cda716b55933314b5cb603 100644
--- a/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.h
+++ b/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.h
@@ -49,9 +49,13 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Keyboard HID Interface
 			USB_Descriptor_Interface_t            HID1_KeyboardInterface;
 			USB_HID_Descriptor_HID_t              HID1_KeyboardHID;
 			USB_Descriptor_Endpoint_t             HID1_ReportINEndpoint;
+
+			// Mouse HID Interface
 			USB_Descriptor_Interface_t            HID2_MouseInterface;
 			USB_HID_Descriptor_HID_t              HID2_MouseHID;
 			USB_Descriptor_Endpoint_t             HID2_ReportINEndpoint;
diff --git a/Demos/Device/ClassDriver/KeyboardMouseMultiReport/Descriptors.h b/Demos/Device/ClassDriver/KeyboardMouseMultiReport/Descriptors.h
index 153fe4df22917bf3a82dfc8233327388f37f792e..1c5062f0e8e426fdaebeb2e2ef8883442ada7310 100644
--- a/Demos/Device/ClassDriver/KeyboardMouseMultiReport/Descriptors.h
+++ b/Demos/Device/ClassDriver/KeyboardMouseMultiReport/Descriptors.h
@@ -49,6 +49,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Combined Keyboard/Mouse HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_HIDData;
 			USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Demos/Device/ClassDriver/MIDI/Descriptors.h b/Demos/Device/ClassDriver/MIDI/Descriptors.h
index a1ded45a198424dd72b6f2b07b10eb0656215f79..97c257fd69b0ad90ecbc151b20ecbce3a2120c0b 100644
--- a/Demos/Device/ClassDriver/MIDI/Descriptors.h
+++ b/Demos/Device/ClassDriver/MIDI/Descriptors.h
@@ -59,8 +59,12 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t     Config;
+
+			// MIDI Audio Control Interface
 			USB_Descriptor_Interface_t                Audio_ControlInterface;
 			USB_Audio_Descriptor_Interface_AC_t       Audio_ControlInterface_SPC;
+
+			// MIDI Audio Streaming Interface
 			USB_Descriptor_Interface_t                Audio_StreamInterface;
 			USB_MIDI_Descriptor_AudioInterface_AS_t   Audio_StreamInterface_SPC;
 			USB_MIDI_Descriptor_InputJack_t           MIDI_In_Jack_Emb;
diff --git a/Demos/Device/ClassDriver/MassStorage/Descriptors.h b/Demos/Device/ClassDriver/MassStorage/Descriptors.h
index 38cb23131c34c05ef562277cd3851bc3ebf40779..34605116e6b812a178280ff01a0ecc8f85b04de3 100644
--- a/Demos/Device/ClassDriver/MassStorage/Descriptors.h
+++ b/Demos/Device/ClassDriver/MassStorage/Descriptors.h
@@ -59,6 +59,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Mass Storage Interface
 			USB_Descriptor_Interface_t            MS_Interface;
 			USB_Descriptor_Endpoint_t             MS_DataInEndpoint;
 			USB_Descriptor_Endpoint_t             MS_DataOutEndpoint;
diff --git a/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.h b/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.h
index d7d1bc9e1038a028e241ca0ed3dfa173012295ad..67a906764306f66f5a27d1f1bc2191d614c1ebe4 100644
--- a/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.h
+++ b/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.h
@@ -66,9 +66,13 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Mass Storage Interface
 			USB_Descriptor_Interface_t            MS_Interface;
 			USB_Descriptor_Endpoint_t             MS_DataInEndpoint;
 			USB_Descriptor_Endpoint_t             MS_DataOutEndpoint;
+
+			// Generic HID Interface
 			USB_Descriptor_Interface_t            HID_KeyboardInterface;
 			USB_HID_Descriptor_HID_t              HID_KeyboardHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Demos/Device/ClassDriver/Mouse/Descriptors.h b/Demos/Device/ClassDriver/Mouse/Descriptors.h
index 8ea34e0147b65e22f836c2fa0491e7141e922779..60fd740842b889a92a1fb7eda4a2f501076a2bf2 100644
--- a/Demos/Device/ClassDriver/Mouse/Descriptors.h
+++ b/Demos/Device/ClassDriver/Mouse/Descriptors.h
@@ -49,6 +49,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Mouse HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_MouseHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Demos/Device/ClassDriver/RNDISEthernet/Descriptors.h b/Demos/Device/ClassDriver/RNDISEthernet/Descriptors.h
index 46c3e26996a489edd7cb4f68f76f6988fa7ef759..f74cf990dc475a20b12001ac764bccd1c09a6651 100644
--- a/Demos/Device/ClassDriver/RNDISEthernet/Descriptors.h
+++ b/Demos/Device/ClassDriver/RNDISEthernet/Descriptors.h
@@ -65,11 +65,15 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// RNDIS CDC Control Interface
 			USB_Descriptor_Interface_t            CDC_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t CDC_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t    CDC_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t  CDC_Functional_Union;
 			USB_Descriptor_Endpoint_t             CDC_NotificationEndpoint;
+
+			// RNDIS CDC Data Interface
 			USB_Descriptor_Interface_t            CDC_DCI_Interface;
 			USB_Descriptor_Endpoint_t             RNDIS_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t             RNDIS_DataInEndpoint;
diff --git a/Demos/Device/ClassDriver/VirtualSerial/Descriptors.h b/Demos/Device/ClassDriver/VirtualSerial/Descriptors.h
index 6e2dd7804e09a96ad3ad75eadfba37daf478e26b..f77e34d6efdf0484e24ea3c191b135ddb3d483c9 100644
--- a/Demos/Device/ClassDriver/VirtualSerial/Descriptors.h
+++ b/Demos/Device/ClassDriver/VirtualSerial/Descriptors.h
@@ -65,11 +65,15 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+
+			// CDC Control Interface
 			USB_Descriptor_Interface_t               CDC_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC_NotificationEndpoint;
+
+			// CDC Data Interface
 			USB_Descriptor_Interface_t               CDC_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC_DataInEndpoint;
diff --git a/Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.h b/Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.h
index f5970a4925209f855148b375ffe6c80a8caae815..3beea74b96fec2b84c109d238bcccfd32409755b 100644
--- a/Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.h
+++ b/Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.h
@@ -74,15 +74,21 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+
+			// CDC Control Interface
 			USB_Descriptor_Interface_Association_t   CDC_IAD;
 			USB_Descriptor_Interface_t               CDC_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC_NotificationEndpoint;
+
+			// CDC Data Interface
 			USB_Descriptor_Interface_t               CDC_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC_DataInEndpoint;
+
+			// Mass Storage Interface
 			USB_Descriptor_Interface_t               MS_Interface;
 			USB_Descriptor_Endpoint_t                MS_DataInEndpoint;
 			USB_Descriptor_Endpoint_t                MS_DataOutEndpoint;
diff --git a/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.h b/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.h
index 028695a77b30e9d01fe0b7850c77b92127c4697b..68d5c3495752d025678891ecfb736b23a21aaf69 100644
--- a/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.h
+++ b/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.h
@@ -71,15 +71,21 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+
+			// CDC Control Interface
 			USB_Descriptor_Interface_Association_t   CDC_IAD;
 			USB_Descriptor_Interface_t               CDC_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC_NotificationEndpoint;
+
+			// CDC Data Interface
 			USB_Descriptor_Interface_t               CDC_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC_DataInEndpoint;
+
+			// Mouse HID Interface
 			USB_Descriptor_Interface_t               HID_Interface;
 			USB_HID_Descriptor_HID_t                 HID_MouseHID;
 	        USB_Descriptor_Endpoint_t                HID_ReportINEndpoint;
diff --git a/Demos/Device/Incomplete/Sideshow/Descriptors.h b/Demos/Device/Incomplete/Sideshow/Descriptors.h
index 9ea38b076fa0420f95e61f6c45530b2fa7dcab07..e24d37e0e52bf8e0a113850cba4628a816082b16 100644
--- a/Demos/Device/Incomplete/Sideshow/Descriptors.h
+++ b/Demos/Device/Incomplete/Sideshow/Descriptors.h
@@ -47,6 +47,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+			
+			// SideShow Interface
 			USB_Descriptor_Interface_t            SSHOW_Interface;
 			USB_Descriptor_Endpoint_t             SSHOW_DataInEndpoint;
 			USB_Descriptor_Endpoint_t             SSHOW_DataOutEndpoint;
diff --git a/Demos/Device/Incomplete/TestAndMeasurement/Descriptors.c b/Demos/Device/Incomplete/TestAndMeasurement/Descriptors.c
index 8cc6138f1561f972e8a2fe5cc72714ffa81c6e73..4beacb2b10e1e3face4f32d439424ac8a80adb63 100644
--- a/Demos/Device/Incomplete/TestAndMeasurement/Descriptors.c
+++ b/Demos/Device/Incomplete/TestAndMeasurement/Descriptors.c
@@ -99,7 +99,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 			.MaxPowerConsumption    = USB_CONFIG_POWER_MA(100)
 		},
 
-	.Interface =
+	.TM_Interface =
 		{
 			.Header                 = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
 
@@ -115,7 +115,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 			.InterfaceStrIndex      = NO_DESCRIPTOR
 		},
 
-	.DataOutEndpoint =
+	.TM_DataOutEndpoint =
 		{
 			.Header                 = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
 
@@ -125,7 +125,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 			.PollingIntervalMS      = 0x01
 		},
 
-	.DataInEndpoint =
+	.TM_DataInEndpoint =
 		{
 			.Header                 = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
 
@@ -135,7 +135,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 			.PollingIntervalMS      = 0x01
 		},
 
-	.NotificationEndpoint =
+	.TM_NotificationEndpoint =
 		{
 			.Header                 = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
 
diff --git a/Demos/Device/Incomplete/TestAndMeasurement/Descriptors.h b/Demos/Device/Incomplete/TestAndMeasurement/Descriptors.h
index 5ae6e4d1d84e5db28f67d6cc6d6c6df678b1e26c..7b4fb0b3551c709fc75a9c47ff5b07c63f04a552 100644
--- a/Demos/Device/Incomplete/TestAndMeasurement/Descriptors.h
+++ b/Demos/Device/Incomplete/TestAndMeasurement/Descriptors.h
@@ -66,10 +66,12 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
-			USB_Descriptor_Interface_t            Interface;
-			USB_Descriptor_Endpoint_t             DataOutEndpoint;
-			USB_Descriptor_Endpoint_t             DataInEndpoint;
-			USB_Descriptor_Endpoint_t             NotificationEndpoint;
+			
+			// Test and Measurement Interface
+			USB_Descriptor_Interface_t            TM_Interface;
+			USB_Descriptor_Endpoint_t             TM_DataOutEndpoint;
+			USB_Descriptor_Endpoint_t             TM_DataInEndpoint;
+			USB_Descriptor_Endpoint_t             TM_NotificationEndpoint;
 		} USB_Descriptor_Configuration_t;
 
 	/* Function Prototypes: */
diff --git a/Demos/Device/LowLevel/AudioInput/Descriptors.h b/Demos/Device/LowLevel/AudioInput/Descriptors.h
index 05d1fee36ae7ae40ea986b2a2f98ba51b92a31a2..aa551b00cbb3e6dd166648c35460cf936a490e87 100644
--- a/Demos/Device/LowLevel/AudioInput/Descriptors.h
+++ b/Demos/Device/LowLevel/AudioInput/Descriptors.h
@@ -59,10 +59,14 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t     Config;
+
+			// Audio Control Interface
 			USB_Descriptor_Interface_t                Audio_ControlInterface;
 			USB_Audio_Descriptor_Interface_AC_t       Audio_ControlInterface_SPC;
 			USB_Audio_Descriptor_InputTerminal_t      Audio_InputTerminal;
 			USB_Audio_Descriptor_OutputTerminal_t     Audio_OutputTerminal;
+
+			// Audio Streaming Interface
 			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt0;
 			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt1;
 			USB_Audio_Descriptor_Interface_AS_t       Audio_StreamInterface_SPC;
diff --git a/Demos/Device/LowLevel/AudioOutput/Descriptors.h b/Demos/Device/LowLevel/AudioOutput/Descriptors.h
index ca5c87386685e9a5fb88b39c24bbde1cffb26c00..da95077c420f5c9285704a6c7b580bbd24b5f1d7 100644
--- a/Demos/Device/LowLevel/AudioOutput/Descriptors.h
+++ b/Demos/Device/LowLevel/AudioOutput/Descriptors.h
@@ -59,10 +59,14 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t     Config;
+
+			// Audio Control Interface
 			USB_Descriptor_Interface_t                Audio_ControlInterface;
 			USB_Audio_Descriptor_Interface_AC_t       Audio_ControlInterface_SPC;
 			USB_Audio_Descriptor_InputTerminal_t      Audio_InputTerminal;
 			USB_Audio_Descriptor_OutputTerminal_t     Audio_OutputTerminal;
+
+			// Audio Streaming Interface
 			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt0;
 			USB_Descriptor_Interface_t                Audio_StreamInterface_Alt1;
 			USB_Audio_Descriptor_Interface_AS_t       Audio_StreamInterface_SPC;
diff --git a/Demos/Device/LowLevel/DualVirtualSerial/Descriptors.h b/Demos/Device/LowLevel/DualVirtualSerial/Descriptors.h
index 6bceb42e242d664c898b266052d394ac11ab47f9..a007baab694d20b8c6cd8156fe53303125080f29 100644
--- a/Demos/Device/LowLevel/DualVirtualSerial/Descriptors.h
+++ b/Demos/Device/LowLevel/DualVirtualSerial/Descriptors.h
@@ -74,21 +74,29 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+
+			// First CDC Control Interface
 			USB_Descriptor_Interface_Association_t   CDC1_IAD;
 			USB_Descriptor_Interface_t               CDC1_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC1_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC1_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC1_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC1_ManagementEndpoint;
+
+			// First CDC Data Interface
 			USB_Descriptor_Interface_t               CDC1_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC1_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC1_DataInEndpoint;
+
+			// Second CDC Control Interface
 			USB_Descriptor_Interface_Association_t   CDC2_IAD;
 			USB_Descriptor_Interface_t               CDC2_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC2_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC2_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC2_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC2_ManagementEndpoint;
+
+			// Second CDC Data Interface
 			USB_Descriptor_Interface_t               CDC2_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC2_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC2_DataInEndpoint;
diff --git a/Demos/Device/LowLevel/GenericHID/Descriptors.h b/Demos/Device/LowLevel/GenericHID/Descriptors.h
index 4e1a0c11e726841b7dbef749e62fb645e031d97e..3ba9f1068ba4267ae5093432ed400fe0d3eabe5e 100644
--- a/Demos/Device/LowLevel/GenericHID/Descriptors.h
+++ b/Demos/Device/LowLevel/GenericHID/Descriptors.h
@@ -49,6 +49,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Generic HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_GenericHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Demos/Device/LowLevel/Joystick/Descriptors.h b/Demos/Device/LowLevel/Joystick/Descriptors.h
index 459c5a9e0e063f56ab2bd1a52361d5d171984c0f..2cbf769a45cf6406bcaf7e33dc14968dbb6575a8 100644
--- a/Demos/Device/LowLevel/Joystick/Descriptors.h
+++ b/Demos/Device/LowLevel/Joystick/Descriptors.h
@@ -49,6 +49,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Joystick HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_JoystickHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Demos/Device/LowLevel/Keyboard/Descriptors.h b/Demos/Device/LowLevel/Keyboard/Descriptors.h
index ee0db42c62f2196f9d2815a96d7188aa5e328bcf..9672395a0803a789fa3e473f9fc124c80ef5a9f1 100644
--- a/Demos/Device/LowLevel/Keyboard/Descriptors.h
+++ b/Demos/Device/LowLevel/Keyboard/Descriptors.h
@@ -50,6 +50,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Keyboard HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_KeyboardHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Demos/Device/LowLevel/KeyboardMouse/Descriptors.h b/Demos/Device/LowLevel/KeyboardMouse/Descriptors.h
index 03606cf9bd48aec8fe1354ce86e859b02250340b..f04b221cea3d2158531f39553f605f549f30ea67 100644
--- a/Demos/Device/LowLevel/KeyboardMouse/Descriptors.h
+++ b/Demos/Device/LowLevel/KeyboardMouse/Descriptors.h
@@ -50,13 +50,16 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+
+			// Keyboard HID Interface
 			USB_Descriptor_Interface_t            HID1_KeyboardInterface;
 			USB_HID_Descriptor_HID_t              HID1_KeyboardHID;
-	        USB_Descriptor_Endpoint_t             HID1_ReportINEndpoint;
-	        USB_Descriptor_Endpoint_t             HID1_ReportOUTEndpoint;
+			USB_Descriptor_Endpoint_t             HID1_ReportINEndpoint;
+
+			// Mouse HID Interface
 			USB_Descriptor_Interface_t            HID2_MouseInterface;
 			USB_HID_Descriptor_HID_t              HID2_MouseHID;
-	        USB_Descriptor_Endpoint_t             HID2_ReportINEndpoint;
+			USB_Descriptor_Endpoint_t             HID2_ReportINEndpoint;
 		} USB_Descriptor_Configuration_t;
 
 	/* Macros: */
diff --git a/Demos/Device/LowLevel/MIDI/Descriptors.h b/Demos/Device/LowLevel/MIDI/Descriptors.h
index 7926955113755db0c3246c93818b653992216bcc..fe6039ec207142489b337dbd579261e3efed4822 100644
--- a/Demos/Device/LowLevel/MIDI/Descriptors.h
+++ b/Demos/Device/LowLevel/MIDI/Descriptors.h
@@ -59,8 +59,12 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t     Config;
+
+			// MIDI Audio Control Interface
 			USB_Descriptor_Interface_t                Audio_ControlInterface;
 			USB_Audio_Descriptor_Interface_AC_t       Audio_ControlInterface_SPC;
+
+			// MIDI Audio Streaming Interface
 			USB_Descriptor_Interface_t                Audio_StreamInterface;
 			USB_MIDI_Descriptor_AudioInterface_AS_t   Audio_StreamInterface_SPC;
 			USB_MIDI_Descriptor_InputJack_t           MIDI_In_Jack_Emb;
diff --git a/Demos/Device/LowLevel/MassStorage/Descriptors.h b/Demos/Device/LowLevel/MassStorage/Descriptors.h
index 7c4a383605d2214f79f7135104b0b07908662487..043d65994a58b64b86e01e77b68d304684c45bb0 100644
--- a/Demos/Device/LowLevel/MassStorage/Descriptors.h
+++ b/Demos/Device/LowLevel/MassStorage/Descriptors.h
@@ -59,6 +59,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+			
+			// Mass Storage Interface
 			USB_Descriptor_Interface_t            MS_Interface;
 			USB_Descriptor_Endpoint_t             MS_DataInEndpoint;
 			USB_Descriptor_Endpoint_t             MS_DataOutEndpoint;
diff --git a/Demos/Device/LowLevel/Mouse/Descriptors.h b/Demos/Device/LowLevel/Mouse/Descriptors.h
index 8ea34e0147b65e22f836c2fa0491e7141e922779..f88f530b24f5f399d09307c3ba129e34315fe711 100644
--- a/Demos/Device/LowLevel/Mouse/Descriptors.h
+++ b/Demos/Device/LowLevel/Mouse/Descriptors.h
@@ -49,6 +49,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+			
+			// Mouse HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_MouseHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Demos/Device/LowLevel/RNDISEthernet/Descriptors.h b/Demos/Device/LowLevel/RNDISEthernet/Descriptors.h
index f59f52357f72350ce6147484bfd7aaf7e26427ca..f439b5116504bd4635fc279bf500d8d5ada25eb1 100644
--- a/Demos/Device/LowLevel/RNDISEthernet/Descriptors.h
+++ b/Demos/Device/LowLevel/RNDISEthernet/Descriptors.h
@@ -64,15 +64,19 @@
 		 */
 		typedef struct
 		{
-			USB_Descriptor_Configuration_Header_t    Config;
-			USB_Descriptor_Interface_t               CDC_CCI_Interface;
-			USB_CDC_Descriptor_FunctionalHeader_t    CDC_Functional_Header;
-			USB_CDC_Descriptor_FunctionalACM_t       CDC_Functional_ACM;
-			USB_CDC_Descriptor_FunctionalUnion_t     CDC_Functional_Union;
-			USB_Descriptor_Endpoint_t                CDC_NotificationEndpoint;
-			USB_Descriptor_Interface_t               CDC_DCI_Interface;
-			USB_Descriptor_Endpoint_t                RNDIS_DataOutEndpoint;
-			USB_Descriptor_Endpoint_t                RNDIS_DataInEndpoint;
+			USB_Descriptor_Configuration_Header_t Config;
+
+			// RNDIS CDC Control Interface
+			USB_Descriptor_Interface_t            CDC_CCI_Interface;
+			USB_CDC_Descriptor_FunctionalHeader_t CDC_Functional_Header;
+			USB_CDC_Descriptor_FunctionalACM_t    CDC_Functional_ACM;
+			USB_CDC_Descriptor_FunctionalUnion_t  CDC_Functional_Union;
+			USB_Descriptor_Endpoint_t             CDC_NotificationEndpoint;
+
+			// RNDIS CDC Data Interface
+			USB_Descriptor_Interface_t            CDC_DCI_Interface;
+			USB_Descriptor_Endpoint_t             RNDIS_DataOutEndpoint;
+			USB_Descriptor_Endpoint_t             RNDIS_DataInEndpoint;
 		} USB_Descriptor_Configuration_t;
 
 	/* Function Prototypes: */
diff --git a/Demos/Device/LowLevel/VirtualSerial/Descriptors.h b/Demos/Device/LowLevel/VirtualSerial/Descriptors.h
index 9f4bf4b42c47fd49797b5b0a0ddb4298eaab3ebe..2ab33e923f51130e80d79d123b0293b83fe354b7 100644
--- a/Demos/Device/LowLevel/VirtualSerial/Descriptors.h
+++ b/Demos/Device/LowLevel/VirtualSerial/Descriptors.h
@@ -65,11 +65,15 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+
+			// CDC Control Interface
 			USB_Descriptor_Interface_t               CDC_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC_NotificationEndpoint;
+
+			// CDC Data Interface
 			USB_Descriptor_Interface_t               CDC_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC_DataInEndpoint;
diff --git a/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.h b/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.h
index 8ea34e0147b65e22f836c2fa0491e7141e922779..f88f530b24f5f399d09307c3ba129e34315fe711 100644
--- a/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.h
+++ b/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.h
@@ -49,6 +49,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+			
+			// Mouse HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_MouseHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/LUFA/ManPages/LUFAPoweredProjects.txt b/LUFA/ManPages/LUFAPoweredProjects.txt
index 33c4c80cdbcf73e1755fc5014b0ea0b39d3cdcc5..bb2184232f99af77fccb9961ce639740f6b9d621 100644
--- a/LUFA/ManPages/LUFAPoweredProjects.txt
+++ b/LUFA/ManPages/LUFAPoweredProjects.txt
@@ -80,6 +80,7 @@
  *  - Programmable XBOX controller: http://richard-burke.dyndns.org/wordpress/pan-galactic-gargantuan-gargle-brain-aka-xbox-360-usb-controller/
  *  - Reprap with LUFA, a LUFA powered 3D printer: http://code.google.com/p/at90usb1287-code-for-arduino-and-eclipse/
  *  - SD Card reader: http://elasticsheep.com/2010/04/teensy2-usb-mass-storage-with-an-sd-card/
+ *  - SDR1, a Software Defined Radio firmware: https://code.google.com/p/sdr-mk1/
  *  - SEGA Megadrive/Genesis Development Cartridge: http://www.makestuff.eu/wordpress/?page_id=398
  *  - Serial Line bus analyser: http://www.pjrc.com/teensy/projects/SerialAnalyzer.html
  *  - SmartportVHD Apple II Mass Storage adapter: http://pcedric3.free.fr/SmartportVHD/
@@ -108,6 +109,7 @@
  *  - Penguino, an Arduino Board With On-Board LUFA Powered Debugger/Programmer: http://wiki.icy.com.au/PenguinoAVR
  *  - PIR-1, an IR control interface for consumer electronics: http://www.promixis.com/pir-1.php
  *  - PIR-4, a USB Connected 4 port IR transmitter: http://promixis.com/pir-4.php
+ *  - KeyGlove, an alternative input system: http://www.keyglove.net/
  *  - Many of Busware's Products: http://www.busware.de/
  *  - MIDIFighter, a USB-MIDI controller: http://www.midifighter.com/
  *  - Retrode, a USB Games Console Cartridge Reader: http://www.retrode.org
diff --git a/Projects/AVRISP-MKII/Descriptors.h b/Projects/AVRISP-MKII/Descriptors.h
index ca68fd51876d3deaa00b932a8aecc02c421cd1b0..786e487bd2559ac7f1c900c898db2bbe3ba72ce9 100644
--- a/Projects/AVRISP-MKII/Descriptors.h
+++ b/Projects/AVRISP-MKII/Descriptors.h
@@ -67,6 +67,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+			
+			// Atmel AVRISP-MKII Interface
 			USB_Descriptor_Interface_t               AVRISP_Interface;
 			USB_Descriptor_Endpoint_t                AVRISP_DataInEndpoint;
 			USB_Descriptor_Endpoint_t                AVRISP_DataOutEndpoint;
diff --git a/Projects/Benito/Descriptors.h b/Projects/Benito/Descriptors.h
index 6e2dd7804e09a96ad3ad75eadfba37daf478e26b..fba6e031c94a266e8fd2fed563d9120c622a8cd1 100644
--- a/Projects/Benito/Descriptors.h
+++ b/Projects/Benito/Descriptors.h
@@ -65,11 +65,15 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+
+			// CDC Command Interface
 			USB_Descriptor_Interface_t               CDC_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC_NotificationEndpoint;
+
+			// CDC Data Interface
 			USB_Descriptor_Interface_t               CDC_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC_DataInEndpoint;
diff --git a/Projects/Incomplete/StandaloneProgrammer/Descriptors.h b/Projects/Incomplete/StandaloneProgrammer/Descriptors.h
index dac92cd2dd432cbc174738538170d1574745566b..0ebc36754600effd0b9fd2ad8bf65f29f14ead31 100644
--- a/Projects/Incomplete/StandaloneProgrammer/Descriptors.h
+++ b/Projects/Incomplete/StandaloneProgrammer/Descriptors.h
@@ -74,6 +74,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+			
+			// Mass Storage Interface
 			USB_Descriptor_Interface_t               MS_Interface;
 			USB_Descriptor_Endpoint_t                MS_DataInEndpoint;
 			USB_Descriptor_Endpoint_t                MS_DataOutEndpoint;
diff --git a/Projects/LEDNotifier/Descriptors.h b/Projects/LEDNotifier/Descriptors.h
index 6e2dd7804e09a96ad3ad75eadfba37daf478e26b..5ce8f34faad3e2366639e6e4280fc4ee3ed7e927 100644
--- a/Projects/LEDNotifier/Descriptors.h
+++ b/Projects/LEDNotifier/Descriptors.h
@@ -65,11 +65,15 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+			
+			// CDC Command Interface
 			USB_Descriptor_Interface_t               CDC_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC_NotificationEndpoint;
+			
+			// CDC Data Interface
 			USB_Descriptor_Interface_t               CDC_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC_DataInEndpoint;
diff --git a/Projects/MIDIToneGenerator/Descriptors.h b/Projects/MIDIToneGenerator/Descriptors.h
index 2b5e7c59c4bf7b30faa9b35171eaaaac667b460e..4f0eccab71a52d51ffc906cea1849e07496d594e 100644
--- a/Projects/MIDIToneGenerator/Descriptors.h
+++ b/Projects/MIDIToneGenerator/Descriptors.h
@@ -59,8 +59,12 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t     Config;
+
+			// MIDI Audio Control Interface
 			USB_Descriptor_Interface_t                Audio_ControlInterface;
 			USB_Audio_Descriptor_Interface_AC_t       Audio_ControlInterface_SPC;
+
+			// MIDI Audio Streaming Interface
 			USB_Descriptor_Interface_t                Audio_StreamInterface;
 			USB_MIDI_Descriptor_AudioInterface_AS_t   Audio_StreamInterface_SPC;
 			USB_MIDI_Descriptor_InputJack_t           MIDI_In_Jack_Emb;
diff --git a/Projects/Magstripe/Descriptors.h b/Projects/Magstripe/Descriptors.h
index 17e6aab7761202248cbef3cf0643d6b933400870..9a71ada966a74dff83e4231cc60f89a9615a2a82 100644
--- a/Projects/Magstripe/Descriptors.h
+++ b/Projects/Magstripe/Descriptors.h
@@ -50,6 +50,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config; /**< Configuration descriptor header structure */
+			
+			// Keyboard HID Interface
 			USB_Descriptor_Interface_t            HID_Interface; /**< Keyboard interface descriptor */
 			USB_HID_Descriptor_HID_t              HID_KeyboardHID; /**< Keyboard HID descriptor */
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint; /**< Keyboard key report endpoint descriptor */
diff --git a/Projects/MediaController/Descriptors.h b/Projects/MediaController/Descriptors.h
index d3d393c9fc45c89f51ed1640204f1e9e92a28f66..74331c27fce8672b940bbf163f5190ba7ac9356f 100644
--- a/Projects/MediaController/Descriptors.h
+++ b/Projects/MediaController/Descriptors.h
@@ -49,6 +49,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+			
+			// Media Controller HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_MediaControlHID;
 	        USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Projects/RelayBoard/Descriptors.h b/Projects/RelayBoard/Descriptors.h
index d913eb722c27fab6282a6851d990a0943cc359cc..ac8a8e0aa54b00f806c77e9ec5f9bb82cc7e6c32 100644
--- a/Projects/RelayBoard/Descriptors.h
+++ b/Projects/RelayBoard/Descriptors.h
@@ -49,6 +49,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+			
+			// Relay Board Interface
 			USB_Descriptor_Interface_t            RelayBoardInterface;
 		} USB_Descriptor_Configuration_t;
 
diff --git a/Projects/TempDataLogger/Descriptors.h b/Projects/TempDataLogger/Descriptors.h
index 283e4473763a97ab47a240f009354c5466818de3..0ba6204ecfaf66079f764312481f26a262a5db81 100644
--- a/Projects/TempDataLogger/Descriptors.h
+++ b/Projects/TempDataLogger/Descriptors.h
@@ -43,9 +43,13 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
+			
+			// Mass Storage Interface
 			USB_Descriptor_Interface_t            MS_Interface;
 			USB_Descriptor_Endpoint_t             MS_DataInEndpoint;
 			USB_Descriptor_Endpoint_t             MS_DataOutEndpoint;
+			
+			// Settings Management Generic HID Interface
 			USB_Descriptor_Interface_t            HID_Interface;
 			USB_HID_Descriptor_HID_t              HID_GenericHID;
 			USB_Descriptor_Endpoint_t             HID_ReportINEndpoint;
diff --git a/Projects/USBtoSerial/Descriptors.h b/Projects/USBtoSerial/Descriptors.h
index 6e2dd7804e09a96ad3ad75eadfba37daf478e26b..5ce8f34faad3e2366639e6e4280fc4ee3ed7e927 100644
--- a/Projects/USBtoSerial/Descriptors.h
+++ b/Projects/USBtoSerial/Descriptors.h
@@ -65,11 +65,15 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+			
+			// CDC Command Interface
 			USB_Descriptor_Interface_t               CDC_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC_NotificationEndpoint;
+			
+			// CDC Data Interface
 			USB_Descriptor_Interface_t               CDC_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC_DataInEndpoint;
diff --git a/Projects/Webserver/Descriptors.h b/Projects/Webserver/Descriptors.h
index e285dfba51c82075bec55f59bf9ccf3e783d3a4d..da8456e9382351a6d8f9274ff7b67a44815d1c6c 100644
--- a/Projects/Webserver/Descriptors.h
+++ b/Projects/Webserver/Descriptors.h
@@ -74,15 +74,21 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t  Config;
+			
+			// RNDIS CDC Command Interface
 			USB_Descriptor_Interface_Association_t CDC_IAD;
 			USB_Descriptor_Interface_t             CDC_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t  CDC_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t     CDC_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t   CDC_Functional_Union;
 			USB_Descriptor_Endpoint_t              CDC_NotificationEndpoint;
+			
+			// RNDIS CDC Data Interface
 			USB_Descriptor_Interface_t             CDC_DCI_Interface;
 			USB_Descriptor_Endpoint_t              RNDIS_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t              RNDIS_DataInEndpoint;
+			
+			// Mass Storage Interface
 			USB_Descriptor_Interface_t             MS_Interface;
 			USB_Descriptor_Endpoint_t              MS_DataInEndpoint;
 			USB_Descriptor_Endpoint_t              MS_DataOutEndpoint;
diff --git a/Projects/XPLAINBridge/AVRISPDescriptors.h b/Projects/XPLAINBridge/AVRISPDescriptors.h
index 2b6f3f41dc8fcc3fc087181826e72e2aa4e95277..e98ea24dc4ef8e6cbef3504f6209f79cfccefb12 100644
--- a/Projects/XPLAINBridge/AVRISPDescriptors.h
+++ b/Projects/XPLAINBridge/AVRISPDescriptors.h
@@ -67,6 +67,8 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+			
+			// Atmel AVRISP-MKII Interface
 			USB_Descriptor_Interface_t               AVRISP_Interface;
 			USB_Descriptor_Endpoint_t                AVRISP_DataInEndpoint;
 			USB_Descriptor_Endpoint_t                AVRISP_DataOutEndpoint;
diff --git a/Projects/XPLAINBridge/USARTDescriptors.h b/Projects/XPLAINBridge/USARTDescriptors.h
index 7356e1f3ec89d8dec3ceb695ccb0ab4f53b58a21..f504011eb91ea1d24f86686e4e1486121b97fb2d 100644
--- a/Projects/XPLAINBridge/USARTDescriptors.h
+++ b/Projects/XPLAINBridge/USARTDescriptors.h
@@ -65,11 +65,15 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t    Config;
+			
+			// CDC Control Interface
 			USB_Descriptor_Interface_t               CDC_CCI_Interface;
 			USB_CDC_Descriptor_FunctionalHeader_t    CDC_Functional_Header;
 			USB_CDC_Descriptor_FunctionalACM_t       CDC_Functional_ACM;
 			USB_CDC_Descriptor_FunctionalUnion_t     CDC_Functional_Union;
 			USB_Descriptor_Endpoint_t                CDC_NotificationEndpoint;
+			
+			// CDC Data Interface
 			USB_Descriptor_Interface_t               CDC_DCI_Interface;
 			USB_Descriptor_Endpoint_t                CDC_DataOutEndpoint;
 			USB_Descriptor_Endpoint_t                CDC_DataInEndpoint;