diff --git a/soitool/codebook_to_pdf.py b/soitool/codebook_to_pdf.py
index 90130e44c017e6d0bdfa8385824ff19bba3f1e09..0036805e1a2978402eb5aaa14190e22df62efb37 100644
--- a/soitool/codebook_to_pdf.py
+++ b/soitool/codebook_to_pdf.py
@@ -38,15 +38,15 @@ PAGE_NUMBER_FONT = "Helvetica"
 
 TABLE_STYLE = TableStyle(
     [
-        ("FONTSIZE", (0, 0), (3, 0), 16),  # Header-fontsize
-        ("BOTTOMPADDING", (0, 0), (3, 0), 10),  # Header-padding bottom
+        ("FONTSIZE", (0, 0), (-1, 0), 16),  # Header-fontsize
+        ("BOTTOMPADDING", (0, 0), (-1, 0), 10),  # Header-padding bottom
         (
             "BACKGROUND",
             (0, 0),
-            (3, 0),
+            (-1, 0),
             HEADER_BG_COLOR,
         ),  # Header background-color
-        ("ALIGN", (0, 0), (3, 0), "CENTER"),  # Header-text centered
+        ("ALIGN", (0, 0), (-1, 0), "CENTER"),  # Header-text centered
         ("GRID", (0, 0), (-1, -1), 1, colors.black),  # Border around cells
     ]
 )
@@ -80,19 +80,17 @@ def generate_codebook_pdf(
     # Get data from database
     data_code, data_decode = get_codebook_data(database, small)
 
-    # Create Tables with data sorted by Word/Code and set predefined style
-    table_code = Table(data_code, repeatRows=1)
-    table_decode = Table(data_decode, repeatRows=1)
-    table_code.setStyle(TABLE_STYLE)
-    table_decode.setStyle(TABLE_STYLE)
+    # Create code- and decodebook-tables with predefined style
+    table_code = Table(data_code, style=TABLE_STYLE, repeatRows=1)
+    table_decode = Table(data_decode, style=TABLE_STYLE, repeatRows=1)
 
-    # Add title, vertical spacer and table for codebook
     elements = []
+    # Add title, vertical spacer and table for codebook
     elements.append(title_code)
     elements.append(Spacer(0, 1 * cm))
     elements.append(table_code)
+    # Double pagebreak to add separating page between code- and decodebook
     elements.append(PageBreak())
-    # Add blank page to separate code- and decodebook
     elements.append(PageBreak())
     # Add title, vertical spacer and table for decodebook
     elements.append(title_decode)
@@ -158,18 +156,28 @@ def get_codebook_data(database, small=False):
     data_decode = []
 
     # Add column-headers
-    data_code.append([HEADERS[0], HEADERS[1], HEADERS[2], HEADERS[3]])
-    data_decode.append([HEADERS[0], HEADERS[1], HEADERS[2], HEADERS[3]])
+    if small:
+        data_code.append([HEADERS[0], HEADERS[3], HEADERS[1]])
+        data_decode.append([HEADERS[3], HEADERS[0], HEADERS[1]])
+    else:
+        data_code.append([HEADERS[0], HEADERS[3], HEADERS[1], HEADERS[2]])
+        data_decode.append([HEADERS[3], HEADERS[0], HEADERS[1], HEADERS[2]])
 
     # Add row data
     for row in db_data_code:
-        data_code.append(
-            [row["word"], row["category"], row["type"], row["code"]]
-        )
+        if small:
+            data_code.append([row["word"], row["code"], row["category"]])
+        else:
+            data_code.append(
+                [row["word"], row["code"], row["category"], row["type"]]
+            )
     for row in db_data_decode:
-        data_decode.append(
-            [row["word"], row["category"], row["type"], row["code"]]
-        )
+        if small:
+            data_decode.append([row["code"], row["word"], row["category"]])
+        else:
+            data_decode.append(
+                [row["code"], row["word"], row["category"], row["type"]]
+            )
 
     return data_code, data_decode
 
diff --git a/soitool/database.py b/soitool/database.py
index 525b502c51560285334570c4495ca9ec5c022125..8488d85e04b312f2b14e37465e414759bbbec2a4 100644
--- a/soitool/database.py
+++ b/soitool/database.py
@@ -30,7 +30,7 @@ CODEBOOK = (
     "CREATE TABLE Codebook("
     "Word VARCHAR PRIMARY KEY NOT NULL CHECK(length(Word) > 0), "
     "Category VARCHAR, "
-    "Type VARCHAR DEFAULT 'Stor' CHECK(Type='Stor' OR Type='Liten'), "
+    "Type VARCHAR NOT NULL DEFAULT 'Stor' CHECK(Type='Stor' OR Type='Liten'), "
     "Code VARCHAR UNIQUE)"
 )
 CATEGORYWORDS = (