diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/PatchSetReviewer.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/PatchSetReviewer.java
index ed40c50..f94323b 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/PatchSetReviewer.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/PatchSetReviewer.java
@@ -8,7 +8,7 @@
 import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritChange;
 import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritClient;
 import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritClientReview;
-import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.messages.DebugMessages;
+import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.messages.DebugCodeBlocksReview;
 import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.patch.comment.GerritCommentRange;
 import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.api.chatgpt.ChatGptReplyItem;
 import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.api.chatgpt.ChatGptResponseContent;
@@ -34,6 +34,7 @@
     @Getter
     private final IChatGptClient chatGptClient;
     private final Localizer localizer;
+    private final DebugCodeBlocksReview debugCodeBlocksReview;
 
     private GerritCommentRange gerritCommentRange;
     private List<ReviewBatch> reviewBatches;
@@ -55,6 +56,7 @@
         this.clientReviewProvider = clientReviewProvider;
         this.chatGptClient = chatGptClient;
         this.localizer = localizer;
+        debugCodeBlocksReview = new DebugCodeBlocksReview(localizer);
     }
 
     public void review(GerritChange change) throws Exception {
@@ -120,7 +122,7 @@
                 continue;
             }
             if (changeSetData.getDebugMode()) {
-                reply += DebugMessages.getDebugMessage(replyItem, isHidden);
+                reply += debugCodeBlocksReview.getDebugCodeBlock(replyItem, isHidden);
             }
             ReviewBatch batchMap = new ReviewBatch();
             batchMap.setContent(reply);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/messages/ClientMessage.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/messages/ClientMessage.java
index 6370782..1d545f5 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/messages/ClientMessage.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/messages/ClientMessage.java
@@ -18,6 +18,7 @@
 
     private final Pattern botMentionPattern;
     private final ClientCommands clientCommands;
+    private final DebugCodeBlocksReview debugCodeBlocksReview;
 
     @Getter
     private String message;
@@ -26,6 +27,7 @@
         super(config);
         botMentionPattern = getBotMentionPattern();
         clientCommands = new ClientCommands(config, changeSetData, localizer);
+        debugCodeBlocksReview = new DebugCodeBlocksReview(localizer);
     }
 
     public ClientMessage(Configuration config, ChangeSetData changeSetData, String message, Localizer localizer) {
@@ -60,8 +62,8 @@
         return this;
     }
 
-    public ClientMessage removeDebugMessages() {
-        message = DebugMessages.removeDebugMessages(message);
+    public ClientMessage removeDebugCodeBlocks() {
+        message = debugCodeBlocksReview.removeDebugCodeBlocks(message);
         return this;
     }
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/messages/DebugCodeBlocks.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/messages/DebugCodeBlocks.java
new file mode 100644
index 0000000..4cb2491
--- /dev/null
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/messages/DebugCodeBlocks.java
@@ -0,0 +1,32 @@
+package com.googlesource.gerrit.plugins.chatgpt.mode.common.client.messages;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import static com.googlesource.gerrit.plugins.chatgpt.utils.TextUtils.*;
+
+public class DebugCodeBlocks {
+    protected final String commentOpening;
+    protected final Pattern debugMessagePattern;
+
+    public DebugCodeBlocks(String openingTitle) {
+        commentOpening = CODE_DELIMITER_BEGIN + openingTitle + "\n";
+        debugMessagePattern = Pattern.compile("\\s+" + CODE_DELIMITER +"\\s*" + openingTitle + ".*" +
+                CODE_DELIMITER + "\\s*", Pattern.DOTALL);
+    }
+
+    public String removeDebugCodeBlocks(String message) {
+        Matcher debugMessagematcher = debugMessagePattern.matcher(message);
+        return debugMessagematcher.replaceAll("");
+    }
+
+    protected String getDebugCodeBlock(List<String> panelItems) {
+        return joinWithNewLine(new ArrayList<>() {{
+            add(commentOpening);
+            addAll(panelItems);
+            add(CODE_DELIMITER);
+        }});
+    }
+}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/messages/DebugCodeBlocksReview.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/messages/DebugCodeBlocksReview.java
new file mode 100644
index 0000000..2c2f607
--- /dev/null
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/messages/DebugCodeBlocksReview.java
@@ -0,0 +1,23 @@
+package com.googlesource.gerrit.plugins.chatgpt.mode.common.client.messages;
+
+import com.googlesource.gerrit.plugins.chatgpt.localization.Localizer;
+import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.api.chatgpt.ChatGptReplyItem;
+
+import java.util.List;
+
+import static com.googlesource.gerrit.plugins.chatgpt.utils.TextUtils.prettyStringifyObject;
+
+public class DebugCodeBlocksReview extends DebugCodeBlocks {
+    private static final String HIDDEN_REPLY = "hidden: %s";
+
+    public DebugCodeBlocksReview(Localizer localizer) {
+        super(localizer.getText("message.debugging.review.title"));
+    }
+
+    public String getDebugCodeBlock(ChatGptReplyItem replyItem, boolean isHidden) {
+        return super.getDebugCodeBlock(List.of(
+                String.format(HIDDEN_REPLY, isHidden),
+                prettyStringifyObject(replyItem)
+        ));
+    }
+}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/messages/DebugMessages.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/messages/DebugMessages.java
deleted file mode 100644
index ef63ad8..0000000
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/messages/DebugMessages.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.googlesource.gerrit.plugins.chatgpt.mode.common.client.messages;
-
-import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.api.chatgpt.ChatGptReplyItem;
-
-import java.util.ArrayList;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import static com.googlesource.gerrit.plugins.chatgpt.utils.TextUtils.*;
-
-public class DebugMessages {
-    private static final String OPENING_TITLE = "DEBUGGING DETAILS";
-    private static final String COMMENT_OPENING = CODE_DELIMITER_BEGIN + OPENING_TITLE + "\n";
-    private static final String HIDDEN_REPLY = "hidden: %s";
-    private static final Pattern DEBUG_MESSAGE_PATTERN = Pattern.compile("\\s+" + CODE_DELIMITER +"\\s*" +
-                    OPENING_TITLE + ".*" + CODE_DELIMITER + "\\s*", Pattern.DOTALL);
-
-    public static String getDebugMessage(ChatGptReplyItem replyItem, boolean isHidden) {
-        return joinWithNewLine(new ArrayList<>() {{
-            add(COMMENT_OPENING);
-            add(String.format(HIDDEN_REPLY, isHidden));
-            add(prettyStringifyObject(replyItem));
-            add(CODE_DELIMITER);
-        }});
-    }
-
-    public static String removeDebugMessages(String message) {
-        Matcher debugMessagematcher = DEBUG_MESSAGE_PATTERN.matcher(message);
-        return debugMessagematcher.replaceAll("");
-    }
-}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptComment.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptComment.java
index f34e611..fccc1a9 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptComment.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/common/client/prompt/ChatGptComment.java
@@ -24,7 +24,7 @@
     protected String getCleanedMessage(GerritComment commentProperty) {
         commentMessage = new ClientMessage(config, changeSetData, commentProperty.getMessage(), localizer);
         if (isFromAssistant(commentProperty)) {
-            commentMessage.removeDebugMessages();
+            commentMessage.removeDebugCodeBlocks();
         }
         else {
             commentMessage.removeMentions().parseRemoveCommands();
diff --git a/src/main/resources/localization/localTexts.properties b/src/main/resources/localization/localTexts.properties
index 512f858..00c5f06 100644
--- a/src/main/resources/localization/localTexts.properties
+++ b/src/main/resources/localization/localTexts.properties
@@ -1,3 +1,4 @@
 system.message.prefix=SYSTEM MESSAGE:
 message.empty.review=No update to show for this Change Set
 message.debugging.functionalities.disabled=Message Debugging functionalities are disabled
+message.debugging.review.title=DEBUGGING DETAILS
