diff --git a/unoptimized_lr/simple_lr_tables.py b/unoptimized_lr/simple_lr_tables.py
index 58c26591d53ceeb13f66b350d75e2f0e32d920ee..3aa1080a332820ee7555f049100fca5055343dea 100644
--- a/unoptimized_lr/simple_lr_tables.py
+++ b/unoptimized_lr/simple_lr_tables.py
@@ -25,7 +25,11 @@ from functools import reduce
 
 
 class ShiftReduceTableBusLayout(Layout):
-    def __init__(self, *, row_input_width, column_input_width, output_width):
+    def __init__(self, *, parameters):
+        row_input_width    =  parameters.W_state
+        column_input_width =  parameters.W_terminal
+        output_width       = (parameters.W_rule + 2)
+
         super().__init__([
             # INPUTS
             ("row_idx",     unsigned(row_input_width)),    # FROM SOURCE
@@ -41,8 +45,8 @@ class ShiftReduceTableBusLayout(Layout):
         ])
 
 class ShiftReduceTableBus(Record):
-    def __init__(self, *, row_input_width, column_input_width, output_width):
-        super().__init__(TableBusLayout(row_input_width=row_input_width, column_input_width=column_input_width, output_width=output_width))
+    def __init__(self, *, parameters):
+        super().__init__(TableBusLayout(parameters=parameters))
 
 
 
@@ -76,9 +80,7 @@ class LRTable(Elaboratable):
 
 
         # Interfaces
-        self.bus = TableBus(row_input_width=lang_params.W_state,
-                            column_input_width=lang_params.W_terminal,
-                            output_width=self.table_width)
+        self.bus = TableBus(parameters=lang_params)
         # Interfaces