diff --git a/b_asic/GUI/arrow.py b/b_asic/GUI/arrow.py
index 06015d465231bd9b54404dd3d6534223518462c1..2c43d8d06fdc7086aba71eb8e6e2886267a08696 100644
--- a/b_asic/GUI/arrow.py
+++ b/b_asic/GUI/arrow.py
@@ -6,7 +6,24 @@ from b_asic.signal import Signal
 
 
 class Arrow(QGraphicsLineItem):
+    """Arrow/connection in signal flow graph GUI."""
+
     def __init__(self, source, destination, window, signal=None, parent=None):
+        """
+        Parameters
+        ==========
+
+        source :
+            Source operation.
+        destination :
+            Destination operation.
+        window :
+            Window containing signal flow graph.
+        signal : Signal, optional
+            Let arrow represent *signal*.
+        parent : optional
+            Parent.
+        """
         super().__init__(parent)
         self.source = source
         if signal is None:
@@ -19,11 +36,13 @@ class Arrow(QGraphicsLineItem):
         self.destination.moved.connect(self.moveLine)
 
     def contextMenuEvent(self, event):
+        """Open right-click menu."""
         menu = QMenu()
         menu.addAction("Delete", self.remove)
         menu.exec_(self.cursor().pos())
 
     def remove(self):
+        """Remove line and connections to signals etc."""
         self.signal.remove_destination()
         self.signal.remove_source()
         self._window.scene.removeItem(self)
@@ -57,6 +76,9 @@ class Arrow(QGraphicsLineItem):
         del self._window.signalPortDict[self]
 
     def moveLine(self):
+        """
+        Draw a line connecting self.source with self.destination. Used as callback when moving operations.
+        """
         self.setPen(QPen(Qt.black, 3))
         self.setLine(
             QLineF(