diff --git a/generated/generalpurposebuffer.go b/generated/generalpurposebuffer.go
index cd323bf..90cd13e 100644
--- a/generated/generalpurposebuffer.go
+++ b/generated/generalpurposebuffer.go
@@ -27,11 +27,11 @@
 
 // GeneralPurposeBufferClassID is the 16-bit ID for the OMCI
 // Managed entity General purpose buffer
-const GeneralPurposeBufferClassID ClassID = ClassID(308)
+const GeneralPurposeBufferClassID = ClassID(308) // 0x0134
 
 var generalpurposebufferBME *ManagedEntityDefinition
 
-// GeneralPurposeBuffer (class ID #308)
+// GeneralPurposeBuffer (Class ID: #308 / 0x0134)
 //	This ME is created by the OLT when needed to store the results of an operation, such as a test
 //	command, that needs to return a block of data of indeterminate size. The buffer is retrieved
 //	with get next operations, since its size is not known a priori. An instance of this ME is
@@ -51,22 +51,22 @@
 //
 //	Attributes
 //		Managed Entity Id
-//			Managed entity ID: This attribute uniquely identifies each instance of this ME. (R, setbycreate)
-//			(mandatory) (2-bytes)
+//			This attribute uniquely identifies each instance of this ME. (R, setbycreate) (mandatory)
+//			(2-bytes)
 //
 //		Maximum Size
-//			Maximum size: The ONU determines the actual size of the buffer table in the process of capturing
-//			the data directed to it. The maximum size attribute permits the OLT to restrict the maximum size
-//			of the buffer table. The value 0 indicates that the OLT imposes no limit on the size; it is
-//			recognized that ONU implementations will impose their own limits. The ONU will not create a
-//			buffer table larger than the value of this attribute. If the ONU cannot allocate enough memory
-//			to accommodate this size, it should deny the ME create action or a write operation that attempts
-//			to expand an existing ME. (R,-W, setbycreate) (optional) (4-bytes)
+//			The ONU determines the actual size of the buffer table in the process of capturing the data
+//			directed to it. The maximum size attribute permits the OLT to restrict the maximum size of the
+//			buffer table. The value 0 indicates that the OLT imposes no limit on the size; it is recognized
+//			that ONU implementations will impose their own limits. The ONU will not create a buffer table
+//			larger than the value of this attribute. If the ONU cannot allocate enough memory to accommodate
+//			this size, it should deny the ME create action or a write operation that attempts to expand an
+//			existing ME. (R,-W, setbycreate) (optional) (4-bytes)
 //
 //		Buffer Table
-//			Buffer table:	This attribute is an octet string that contains the result of some operation
-//			performed on the ONU. The exact content depends on the operation, and is documented with the
-//			definition of each operation. (R) (mandatory) (N bytes)
+//			This attribute is an octet string that contains the result of some operation performed on the
+//			ONU. The exact content depends on the operation, and is documented with the definition of each
+//			operation. (R) (mandatory) (N bytes)
 //
 type GeneralPurposeBuffer struct {
 	ManagedEntityDefinition
