diff --git a/cper-parse.c b/cper-parse.c
index 8b62ef6..12eb464 100644
--- a/cper-parse.c
+++ b/cper-parse.c
@@ -221,37 +221,22 @@
 
 	//If a platform ID exists according to the validation bits, then add it.
 	if (header->ValidationBits & 0x1) {
-		char platform_string[GUID_STRING_LENGTH];
-		guid_to_string(platform_string, &header->PlatformID);
-		json_object_object_add(header_ir, "platformID",
-				       json_object_new_string(platform_string));
+		add_guid(header_ir, "platformID", &header->PlatformID);
 	}
 
 	//If a partition ID exists according to the validation bits, then add it.
 	if (header->ValidationBits & 0x4) {
-		char partition_string[GUID_STRING_LENGTH];
-		guid_to_string(partition_string, &header->PartitionID);
-		json_object_object_add(
-			header_ir, "partitionID",
-			json_object_new_string(partition_string));
+		add_guid(header_ir, "partitionID", &header->PartitionID);
 	}
 
 	//Creator ID of the header.
-	char creator_string[GUID_STRING_LENGTH];
-	guid_to_string(creator_string, &header->CreatorID);
-	json_object_object_add(header_ir, "creatorID",
-			       json_object_new_string(creator_string));
-
+	add_guid(header_ir, "creatorID", &header->CreatorID);
 	//Notification type for the header. Some defined types are available.
 	json_object *notification_type = json_object_new_object();
-	char notification_type_string[GUID_STRING_LENGTH];
-	guid_to_string(notification_type_string, &header->NotificationType);
-	json_object_object_add(
-		notification_type, "guid",
-		json_object_new_string(notification_type_string));
+	add_guid(notification_type, "guid", &header->NotificationType);
 
 	//Add the human readable notification type if possible.
-	char *notification_type_readable = "Unknown";
+	const char *notification_type_readable = "Unknown";
 	if (guid_equal(&header->NotificationType,
 		       &gEfiEventNotificationTypeCmcGuid)) {
 		notification_type_readable = "CMC";
@@ -343,11 +328,8 @@
 
 	//Section type (GUID).
 	json_object *section_type = json_object_new_object();
-	char section_type_string[GUID_STRING_LENGTH];
-	guid_to_string(section_type_string, &section_descriptor->SectionType);
-	json_object_object_add(section_type, "data",
-			       json_object_new_string(section_type_string));
 
+	add_guid(section_type, "data", &section_descriptor->SectionType);
 	//Readable section type, if possible.
 	const char *section_type_readable = "Unknown";
 	for (size_t i = 0; i < section_definitions_len; i++) {
@@ -366,10 +348,8 @@
 
 	//If validation bits indicate it exists, add FRU ID.
 	if (section_descriptor->SecValidMask & 0x1) {
-		char fru_id_string[GUID_STRING_LENGTH];
-		guid_to_string(fru_id_string, &section_descriptor->FruId);
-		json_object_object_add(section_descriptor_ir, "fruID",
-				       json_object_new_string(fru_id_string));
+		add_guid(section_descriptor_ir, "fruID",
+			 &section_descriptor->FruId);
 	}
 
 	//If validation bits indicate it exists, add FRU text.
