diff --git a/b_asic/GUI/plot_window.py b/b_asic/GUI/plot_window.py
index b7b93e3b21ed8d8c0f622af944ef1632dabdeca1..32d87ae2e0bf1fdcb8e29eee777b487cf4e37352 100644
--- a/b_asic/GUI/plot_window.py
+++ b/b_asic/GUI/plot_window.py
@@ -1,7 +1,7 @@
 # TODO's:
 # * Solve the legend update. That isn't working at all.
 # * Change labels "All" and "None" into buttons.
-# * Make it work with the main_window (probably requires a rebase or merge)
+# * Make it work with the main_window
 
 import re
 import sys
@@ -15,7 +15,7 @@ from qtpy.QtCore import Qt
 from qtpy.QtGui import QKeySequence
 
 # Intereme imports for the Plot class:
-from qtpy.QtWidgets import (  # QFrame,; QScrollArea,; QLineEdit,
+from qtpy.QtWidgets import (  # QFrame,; QScrollArea,; QLineEdit,; QSizePolicy,
     QApplication,
     QCheckBox,
     QDialog,
@@ -26,12 +26,13 @@ from qtpy.QtWidgets import (  # QFrame,; QScrollArea,; QLineEdit,
     QListWidgetItem,
     QPushButton,
     QShortcut,
-    QSizePolicy,
     QVBoxLayout,
 )
 
 
 class PlotCanvas(FigureCanvas):
+    """PlotCanvas is used as a part in the PlotWindow."""
+
     def __init__(self, logger, parent=None, width=5, height=4, dpi=100):
         fig = Figure(figsize=(width, height), dpi=dpi)
         super().__init__(fig)
@@ -60,12 +61,14 @@ class PlotCanvas(FigureCanvas):
 
 
 class PlotWindow(QDialog):
+    """Dialog for plotting the result of a simulation."""
+
     def __init__(
         self,
-        window,
-        sfg_name,
         sim_result,
-        logger,
+        sfg_name="{sfg_name}",
+        window=None,
+        logger=print,
         parent=None,
         width=5,
         height=4,
@@ -127,16 +130,16 @@ class PlotWindow(QDialog):
         # Add two labels for selecting all/none:
         hlayout = QHBoxLayout()
         labelAll = QLabel("All")
-        labelAll.mousePressEvent = self.labelAll_click
+        labelAll.mousePressEvent = self._label_all_click
         labelNone = QLabel("None")
-        labelNone.mousePressEvent = self.labelNone_click
+        labelNone.mousePressEvent = self._label_none_click
         hlayout.addWidget(labelAll)
         hlayout.addWidget(labelNone)
         listlayout.addLayout(hlayout)
 
         # Add the entire list
         self.checklist = QListWidget()
-        self.checklist.itemChanged.connect(self.item_change)
+        self.checklist.itemChanged.connect(self._item_change)
         listitems = {}
         for key in (
             sim_res_ins | sim_res_outs | sim_res_delays | sim_res_others
@@ -145,19 +148,17 @@ class PlotWindow(QDialog):
             listitems[key] = listitem
             self.checklist.addItem(listitem)
             listitem.setCheckState(
-                Qt.Unchecked
-            )  # CheckState: Qt.{Unchecked, PartiallyChecked, Checked}
+                Qt.CheckState.Unchecked  # CheckState: Qt.CheckState.{Unchecked, PartiallyChecked, Checked}
+            )
         for key in sim_res_outs:
-            listitems[key].setCheckState(
-                Qt.Checked
-            )  # CheckState: Qt.{Unchecked, PartiallyChecked, Checked}
+            listitems[key].setCheckState(Qt.CheckState.Checked)
         self.checklist.setFixedWidth(150)
         listlayout.addWidget(self.checklist)
 
         # Add a "legend" checkbox, connected to the plot.
         self.legend_checkbox = QCheckBox("&Legend")
-        self.legend_checkbox.stateChanged.connect(self.legend_checkbox_change)
-        self.legend_checkbox.setCheckState(Qt.Checked)
+        self.legend_checkbox.stateChanged.connect(self._legend_checkbox_change)
+        self.legend_checkbox.setCheckState(Qt.CheckState.Checked)
         listlayout.addWidget(self.legend_checkbox)
 
         # Add "Close" buttons
@@ -169,34 +170,38 @@ class PlotWindow(QDialog):
         # self.plotcanvas.draw()
         self._auto_redraw = True
 
-    def legend_checkbox_change(self, checkState):
-        self.plotcanvas.legend.set(visible=(checkState == Qt.Checked))
+    def _legend_checkbox_change(self, checkState):
+        self.plotcanvas.legend.set(
+            visible=(checkState == Qt.CheckState.Checked)
+        )
         if self._auto_redraw:
-            if checkState == Qt.Checked:
+            if checkState == Qt.CheckState.Checked:
                 self.plotcanvas.legend = self.plotcanvas.axes.legend()
             self.plotcanvas.draw()
             # self.plotcanvas.legend
-        # if checkState == Qt.Checked:
+        # if checkState == Qt.CheckState.Checked:
         #    print('legend on')
         # else:
         #    print('legend off')
 
-    def labelAll_click(self, event):
+    def _label_all_click(self, event):
         for x in range(self.checklist.count()):
-            self.checklist.item(x).setCheckState(Qt.Checked)
+            self.checklist.item(x).setCheckState(Qt.CheckState.Checked)
 
-    def labelNone_click(self, event):
+    def _label_none_click(self, event):
         for x in range(self.checklist.count()):
-            self.checklist.item(x).setCheckState(Qt.Unchecked)
+            self.checklist.item(x).setCheckState(Qt.CheckState.Unchecked)
 
-    def item_change(self, listitem):
+    def _item_change(self, listitem):
         key = listitem.text()
-        self._lines[key][0].set(visible=(listitem.checkState() == Qt.Checked))
+        self._lines[key][0].set(
+            visible=(listitem.checkState() == Qt.CheckState.Checked)
+        )
         if self._auto_redraw:
-            if self.legend_checkbox.checkState == Qt.Checked:
+            if self.legend_checkbox.checkState == Qt.CheckState.Checked:
                 self.plotcanvas.legend = self.plotcanvas.axes.legend()
             self.plotcanvas.draw()
-        # print(f"lines[{key}].set(visible={listitem.checkState() == Qt.Checked}). autodraw={self._auto_redraw}")
+        # print(f"lines[{key}].set(visible={listitem.checkState() == Qt.CheckState.Checked}). autodraw={self._auto_redraw}")
         # print("Arg:", listitem)
 
 
@@ -217,51 +222,3 @@ if __name__ == "__main__":
     )
     win.exec_()
     # win.show()
-
-
-# This is the original, used as a quick reference. Do not instantiate this:
-class Plot(FigureCanvas):
-    def __init__(
-        self, simulation, sfg, window, parent=None, width=5, height=4, dpi=100
-    ):
-        self.simulation = simulation
-        self.sfg = sfg
-        self.dpi = dpi
-        self._window = window
-
-        fig = Figure(figsize=(width, height), dpi=dpi)
-        fig.suptitle(sfg.name, fontsize=20)
-        self.axes = fig.add_subplot(111)
-
-        FigureCanvas.__init__(self, fig)
-        self.setParent(parent)
-
-        FigureCanvas.setSizePolicy(
-            self, QSizePolicy.Expanding, QSizePolicy.Expanding
-        )
-        FigureCanvas.updateGeometry(self)
-        self.save_figure = QShortcut(QKeySequence("Ctrl+S"), self)
-        self.save_figure.activated.connect(self._save_plot_figure)
-        self._plot_values_sfg()
-
-    def _save_plot_figure(self):
-        self._window.logger.info(f"Saving plot of figure: {self.sfg.name}.")
-        file_choices = "PNG (*.png)|*.png"
-        path, ext = QFileDialog.getSaveFileName(
-            self, "Save file", "", file_choices
-        )
-        path = path.encode("utf-8")
-        if not path[-4:] == file_choices[-4:].encode("utf-8"):
-            path += file_choices[-4:].encode("utf-8")
-
-        if path:
-            self.print_figure(path.decode(), dpi=self.dpi)
-            self._window.logger.info(
-                f"Saved plot: {self.sfg.name} to path: {path}."
-            )
-
-    def _plot_values_sfg(self):
-        x_axis = list(range(len(self.simulation.results["0"])))
-        for _output in range(self.sfg.output_count):
-            y_axis = self.simulation.results[str(_output)]
-            self.axes.plot(x_axis, y_axis)