diff --git a/soitool/modules/module_phonebook.py b/soitool/modules/module_phonebook.py
index be37faa6f80b3677d8894abfb0f63e0da5d96f2f..5ca1a392d9a51bcd651315f688c8a4f21301a8cd 100644
--- a/soitool/modules/module_phonebook.py
+++ b/soitool/modules/module_phonebook.py
@@ -20,38 +20,59 @@ from soitool.modules.module_base import (
 
 
 class ComponentsChoicePopup(QDialog):
-    def __init__(self, table_columns):
-
+    def __init__(self, selected_columns):
+        """A popup for selecting wich columns to hide/show in phonebook.
+
+        Parameters
+        ----------
+        QDialog : QDialog
+            Parent class for popup functionality.
+        selected_columns : dict
+            Table structure for columns to show/hide.
+        """
         super().__init__()
-
-        self.table_columns = table_columns
-
+        self.selected_columns = selected_columns
         self.setWindowTitle("Kolonner")
 
         # Layout
         layout = QVBoxLayout()
 
-        for header in self.table_columns.keys():
+        # Checkboxes
+        for header in self.selected_columns.keys():
             box = QCheckBox(header)
-            box.setChecked(self.table_columns[header])
+            box.setChecked(self.selected_columns[header])
             layout.addWidget(box)
 
+        # Button
         btn_done = QPushButton("Bruk")
-        btn_done.clicked.connect(lambda: self.update_table_columns(layout))
+        btn_done.clicked.connect(lambda: self.update_selected_columns(layout))
         layout.addWidget(btn_done)
 
         self.setLayout(layout)
 
-    def update_table_columns(self, layout):
+    def update_selected_columns(self, layout):
+        """Update the dict for columns to hide/show based on checkboxes.
 
+        Parameters
+        ----------
+        layout : QLayout
+            Layout with checkboxes to loop trough.
+        """
         for item_index in range(layout.count()):
             item = layout.itemAt(item_index).widget()
             if isinstance(item, QCheckBox):
-                self.table_columns[item.text()] = item.isChecked()
+                self.selected_columns[item.text()] = item.isChecked()
         self.accept()
 
-    def get_table_columns(self):
-        return self.table_columns
+    def get_selected_columns(self):
+        """Getter for the table structure.
+
+        Returns
+        -------
+        dict
+            The table structure.
+        """
+        return self.selected_columns
 
 
 class Meta(type(ModuleBase), type(QWidget)):
@@ -60,12 +81,13 @@ class Meta(type(ModuleBase), type(QWidget)):
 
 class PhonebookModule(ModuleBase, QWidget, metaclass=Meta):
     def __init__(self):
-
+        """Phonebook."""
         self.type = "Telefonliste"
         QWidget.__init__(self)
         ModuleBase.__init__(self)
 
-        self.table_columns = {
+        # Table structure
+        self.selected_columns = {
             "Funksjon": True,
             "Telefon": True,
             "FDN": False,
@@ -99,9 +121,14 @@ class PhonebookModule(ModuleBase, QWidget, metaclass=Meta):
     #   !!!!! CREATE MAIN COMPONENTS !!!!!!
 
     def __create_table(self):
-
-        table = QTableWidget(2, len(self.table_columns))
-
+        """The actual phonebook table.
+
+        Returns
+        -------
+        QTableWidget
+            The phonebook table.
+        """
+        table = QTableWidget(2, len(self.selected_columns))
         table.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
         table.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
         table.horizontalHeader().hide()
@@ -109,7 +136,7 @@ class PhonebookModule(ModuleBase, QWidget, metaclass=Meta):
 
         # Headers - setup
         column_index = 0
-        for header in self.table_columns.keys():
+        for header in self.selected_columns.keys():
             header_item = QTableWidgetItem(header)
             header_item.setFont(HEADLINE_FONT)
             header_item.setFlags(header_item.flags() ^ Qt.ItemIsEditable)
@@ -123,20 +150,30 @@ class PhonebookModule(ModuleBase, QWidget, metaclass=Meta):
         return table
 
     def __creat_buttons(self):
-
+        """Buttons for editing phonebook table.
+
+        Returns
+        -------
+        QWidget
+            Widget holding a layout with buttons.
+        """
+        # Button for editing columns
         btn_components = QPushButton("Kolonner", self)
         btn_components.clicked.connect(lambda: self.open_popup())
         btn_components.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_K))
         btn_components.setFixedWidth(100)
 
+        # Buttons for adding row
         btn_add = QPushButton(" + ", self)
         btn_add.clicked.connect(lambda: self.add_row())
         btn_add.setFixedWidth(50)
 
+        # Buttons for removing row
         btn_remove = QPushButton(" - ", self)
         btn_remove.clicked.connect(lambda: self.remove_row())
         btn_remove.setFixedWidth(50)
 
+        # Layout for structure
         hbox = QHBoxLayout()
         hbox.setSpacing(0)
         hbox.setSpacing(0)
@@ -144,6 +181,7 @@ class PhonebookModule(ModuleBase, QWidget, metaclass=Meta):
         hbox.addWidget(btn_add)
         hbox.addWidget(btn_remove)
 
+        # Widget wrapping buttons
         wrapper = QWidget()
         wrapper.setFixedSize(QSize(230, 50))
         wrapper.setLayout(hbox)
@@ -154,15 +192,35 @@ class PhonebookModule(ModuleBase, QWidget, metaclass=Meta):
     #   !!!!! EVENT HADNDLERS !!!!!
 
     def enterEvent(self, event):
+        """Eventhandler for showing buttons when mous enters widgets space.
+
+        Parameters
+        ----------
+        event : enterEvent
+            Called when mouse enters widgets space.
+        """
         self.buttons.show()
         self.resize()
 
     def leaveEvent(self, event):
+        """Eventhandler for hiding buttons when mouse leaves widgets space.
+
+        Parameters
+        ----------
+        event : enterEvent
+            Called when mosue leaves widgets space.
+        """
         self.buttons.hide()
         self.resize()
 
     def keyPressEvent(self, event):
+        """Keyboard shortcuts for adding and removing rows.
 
+        Parameters
+        ----------
+        event : keyPressEvent
+            Called when keys are pressed.
+        """
         ctrl = event.modifiers() == Qt.ControlModifier
 
         if ctrl and event.key() == Qt.Key_Plus:
@@ -175,24 +233,43 @@ class PhonebookModule(ModuleBase, QWidget, metaclass=Meta):
     #   !!!!! TABLE OPERATIONS !!!!!
 
     def add_row(self):
+        """Add row to phonebook table."""
         self.table.insertRow(self.table.currentRow() + 1)
         self.resize()
 
     def remove_row(self):
+        """Remove row for phonebook table."""
         if self.table.currentRow() > 0:
             self.table.removeRow(self.table.currentRow())
             self.resize()
 
     def set_columns(self):
-        for header in self.table_columns.keys():
+        """Update table columns visibility based on selected_columns."""
+        for header in self.selected_columns.keys():
             self.table.setColumnHidden(
                 self.get_column_index_by_header(header),
-                not (self.table_columns[header]),
+                not (self.selected_columns[header]),
             )
-
         self.resize()
 
     def get_column_index_by_header(self, header):
+        """Get index for column containing a spesific header.
+
+        Parameters
+        ----------
+        header : string
+            The header to search for.
+
+        Returns
+        -------
+        int
+            The column index for where the header was found.
+
+        Raises
+        ------
+        LookupError
+            Unable to find header in table headers.
+        """
         for column_index in range(self.table.columnCount()):
             self.table.setCurrentCell(0, column_index)
             if self.table.currentItem().text() == header:
@@ -203,6 +280,7 @@ class PhonebookModule(ModuleBase, QWidget, metaclass=Meta):
     #   !!!!! MODULE OPERATIONs !!!!!
 
     def resize(self):
+        """Resize whole module based on content."""
         resize_table(self.table)
 
         width = max(get_table_size(self.table)[0], self.header.minimumWidth())
@@ -216,9 +294,10 @@ class PhonebookModule(ModuleBase, QWidget, metaclass=Meta):
         self.setFixedSize(QSize(width, height))
 
     def open_popup(self):
-        popup = ComponentsChoicePopup(self.table_columns)
+        """Open dialog for editing columns."""
+        popup = ComponentsChoicePopup(self.selected_columns)
         popup.exec_()
-        self.table_columns = popup.get_table_columns()
+        self.selected_columns = popup.get_selected_columns()
         self.set_columns()
 
     #   !!!!! MODULE BASE OPERATIONS !!!!!