diff --git a/soitool/media/phonetable.png b/soitool/media/phonetable.png
new file mode 100644
index 0000000000000000000000000000000000000000..2e699d71b68a4b6f7ccb259efbbebd341dcdbdde
Binary files /dev/null and b/soitool/media/phonetable.png differ
diff --git a/soitool/modules/module_phonebook.py b/soitool/modules/module_phonebook.py
index 5ca1a392d9a51bcd651315f688c8a4f21301a8cd..4625f58480042f686c7f36abbfdfe00300ddc4f4 100644
--- a/soitool/modules/module_phonebook.py
+++ b/soitool/modules/module_phonebook.py
@@ -10,7 +10,7 @@ from PySide2.QtWidgets import (
     QCheckBox,
 )
 from PySide2.QtCore import Qt, QSize
-from PySide2.QtGui import QKeySequence, QBrush, QColor
+from PySide2.QtGui import QKeySequence, QBrush, QColor, QIcon
 from soitool.modules.module_base import (
     ModuleBase,
     HEADLINE_FONT,
@@ -303,24 +303,61 @@ class PhonebookModule(ModuleBase, QWidget, metaclass=Meta):
     #   !!!!! MODULE BASE OPERATIONS !!!!!
 
     def get_size(self):
-        return super().get_size()
+        """Getter for module size.
+
+        Returns
+        -------
+        tupple
+            Size of the module (width, height)
+        """
+        self.resize()
+        return (self.minimumWidth, self.minimumHeight)
 
     def get_data(self):
-        return super().get_data()
+        """Get module content as serialized data.
+
+        Returns
+        -------
+        dict
+            Serialized module content.
+        """
+
+        data = {}
+
+        for column_index in range(self.table.columnCount()):
+            self.table.setCurrentCell(0, column_index)
+            header = self.table.currentItem().text()
+            if self.selected_columns[header]:
+                row_data = []
+                for row_index in range(1, self.table.rowCount()):
+                    self.table.setCurrentCell(row_index, column_index)
+                    row_item = self.table.currentItem()
+                    if row_item:
+                        row_data.append(row_item.text())
+                    else:
+                        row_data.append("")
+                data[header] = row_data
+
+        return data
 
     @staticmethod
     def get_user_friendly_name():
-        pass
+        """Get user friendly name.
+
+        Returns
+        -------
+        string
+            User friendly name.
+        """
+        return "Telefonliste"
 
     @staticmethod
     def get_icon():
-        pass
+        """Get icon.
 
-
-if __name__ == "__main__":
-    from PySide2.QtWidgets import QApplication
-
-    app = QApplication()
-    module = PhonebookModule()
-    module.show()
-    app.exec_()
+        Returns
+        -------
+        QIcon
+            Picture of module.
+        """
+        return QIcon("soitool/media/phonetable.png")