diff --git a/GUI_byBuni.py b/GUI_byBuni.py
index 8ee796f41c2aed1e9f1e3467387939011b477148..944a692c18c04aa2b89948ff95f0d4e01e8add3b 100644
--- a/GUI_byBuni.py
+++ b/GUI_byBuni.py
@@ -43,7 +43,7 @@ def create_tooltip(widget, text):
     return tooltip
 
 class DrawingApp:
-    def __init__(self, root):
+    def __init__(self, root): # initialize the drawingapp to set up all the styles
         self.root = root
         self.root.title("Graphical User Interface for REPL Interpreter based on ExplainDT")
         self.canvas_size = 560
@@ -141,7 +141,7 @@ class DrawingApp:
         # Initialize the 28x28DrawingPanel2VectorConverter tab content
         self.initialize_drawing_tab()
 
-    def initialize_drawing_tab(self):
+    def initialize_drawing_tab(self): # init canvas
         self.canvas = tk.Canvas(self.drawing_frame, width=self.canvas_size, height=self.canvas_size, bg='black')
         self.canvas.grid(row=0, column=0, sticky="nsew")
 
@@ -157,22 +157,22 @@ class DrawingApp:
         self.reset_button = ttk.Button(button_frame, text="Reset", command=self.reset_canvas, style="Large.TButton")
         self.reset_button.grid(row=0, column=1, padx=5)
 
-    def draw(self, event):
+    def draw(self, event): # draw on drawing panel using mouse
         x, y = event.x, event.y
         x1 = (x // self.pixel_size) * self.pixel_size
         y1 = (y // self.pixel_size) * self.pixel_size
         self.canvas.create_rectangle(x1, y1, x1 + self.pixel_size, y1 + self.pixel_size, fill="white", outline="white")
         self.update_vector(x1, y1)
 
-    def update_vector(self, x, y):
+    def update_vector(self, x, y): # update vector array based on drawn pixels
         index = (y // self.pixel_size) * self.grid_size + (x // self.pixel_size)
         self.vector[index] = 1
 
-    def generate_vector(self):
+    def generate_vector(self): # convert drawn image to vector string
         vector_str = f"[{','.join(map(str, self.vector))}]"
         self.show_vector_window(vector_str)
 
-    def show_vector_window(self, vector_str):
+    def show_vector_window(self, vector_str): # display vector which was drawn in new window
         vector_window = tk.Toplevel(self.root)
         vector_window.title("Generated Vector")
 
@@ -182,23 +182,23 @@ class DrawingApp:
         copy_button = ttk.Button(vector_window, text="Copy to Clipboard", command=lambda: self.copy_to_clipboard(vector_str), style="Large.TButton")
         copy_button.pack(pady=5)
 
-    def copy_to_clipboard(self, vector_str):
+    def copy_to_clipboard(self, vector_str): # copy vector to clipoard
         self.root.clipboard_clear()
         self.root.clipboard_append(vector_str)
         messagebox.showinfo("Copied", "The vector has been copied to the clipboard.")
 
-    def reset_canvas(self):
+    def reset_canvas(self): # reset drawing panel (erase everything)
         self.canvas.delete("all")
         self.vector = [0] * (self.grid_size * self.grid_size)
 
-    def select_solver(self):
+    def select_solver(self): # select sat solver
         self.solver_path = filedialog.askopenfilename(title="Select Solver")
         if self.solver_path:
             self.solver_button.config(bg="green", activebackground="green", text="Solver Selected")
             self.update_tooltip(self.solver_button, self.solver_tooltip, self.solver_path)
             messagebox.showinfo("Solver Selected", f"Solver path set to: {self.solver_path}")
 
-    def select_model(self):
+    def select_model(self): # select model (in json format)
         self.model_path = filedialog.askopenfilename(title="Select Model")
         if self.model_path:
             self.model_button.config(bg="green", activebackground="green", text="Model Selected")
@@ -210,7 +210,7 @@ class DrawingApp:
         button.unbind('<Leave>')
         tooltip = create_tooltip(button, text)
 
-    def evaluate_query(self):
+    def evaluate_query(self): # query evaluation using impl. of arenas et al.
         query = self.query_entry.get("1.0", tk.END).strip()
         if not self.solver_path or not self.model_path:
             messagebox.showwarning("Paths Missing", "Please select both solver and model paths.")
@@ -237,11 +237,11 @@ class DrawingApp:
         result_label = tk.Label(result_window, text=cleaned_output, wraplength=500, font=("Helvetica", 12))
         result_label.pack(pady=10, padx=10)
 
-    def remove_ansi_codes(self, text):
+    def remove_ansi_codes(self, text): # remove escape code
         ansi_escape = re.compile(r'\x1B[@-_][0-?]*[ -/]*[@-~]')
         return ansi_escape.sub('', text)
 
-    def on_tab_change(self, event):
+    def on_tab_change(self, event): # tab change for plugin window
         selected_tab = event.widget.tab('current')['text']
         if selected_tab == '28x28DrawingPanel2VectorConverter':
             if not hasattr(self, 'drawing_initialized'):
@@ -258,7 +258,7 @@ class DrawingApp:
             plugin3_label = ttk.Label(self.plugin3_frame, text="Coming soon...", style="Large.TLabel")
             plugin3_label.pack(expand=True)
 
-    def initialize_query_builder_tab(self):
+    def initialize_query_builder_tab(self): # init query builder tab
         query_builder_frame = ttk.Frame(self.query_builder_frame)
         query_builder_frame.pack(fill=tk.BOTH, expand=True)
 
@@ -299,16 +299,16 @@ class DrawingApp:
     def insert_grammar_element(self, element):
         self.query_text.insert(tk.END, f" {element} ")
 
-    def copy_query(self):
+    def copy_query(self): # copy query which was generated using query builder plugin
         query = self.query_text.get("1.0", tk.END).strip()
         self.root.clipboard_clear()
         self.root.clipboard_append(query)
         messagebox.showinfo("Copied", "The query has been copied to the clipboard.")
 
-    def clear_query(self):
+    def clear_query(self): # reset query bulder
         self.query_text.delete("1.0", tk.END)
 
-    def show_query_history(self):
+    def show_query_history(self): # evaluated query history
         history_window = tk.Toplevel(self.root)
         history_window.title("Query History")