diff --git a/unoptimized_lr/simple_lr_table.py b/unoptimized_lr/simple_lr_table.py
index 67a537b12923741875ccd9e21e543297a76c2b2e..42fe5521ec0783f1edbfc7844184ac2bd83837f9 100644
--- a/unoptimized_lr/simple_lr_table.py
+++ b/unoptimized_lr/simple_lr_table.py
@@ -15,7 +15,7 @@ from functools import reduce
 # 3) make it optimized
 
 class LRTable(Elaboratable):
-    def __init__(self, number_of_states, number_of_terminals, number_of_reduce_rules):
+    def __init__(self, number_of_states, number_of_terminals, number_of_reduce_rules, input_array):
         # Parameters
 
         # So the LR table is a two-dimensional array, where one of the dimensions (rows)
@@ -66,8 +66,16 @@ class LRTable(Elaboratable):
         self.table_entry_out_valid = Signal(1)
 
 
+        # Prepare the table for consumption
+        assert(len(input_array) == number_of_states)
+
+        rasterized = []
+        for row in input_array:
+            assert(len(row) == number_of_terminals)
+            rasterized.extend(row)
+
         # Memory
-        self.mem = Memory(width=self.table_width, depth=self.table_depth, init= [0x1a,0x2b,0x3c,0x4d])
+        self.mem = Memory(width=self.table_width, depth=self.table_depth, init=rasterized)
 
 
     def elaborate(self, platform):
@@ -105,7 +113,7 @@ class LRTable(Elaboratable):
 
 
 class GOTOtable(Elaboratable):
-    def __init__(self, number_of_states, number_of_nonterminals):
+    def __init__(self, number_of_states, number_of_nonterminals, input_array):
         # Parameters
 
         # So the GOTO table is a two-dimensional array, where one of the dimensions (rows)
@@ -158,8 +166,17 @@ class GOTOtable(Elaboratable):
         self.table_entry_out_valid = Signal(1)
 
 
+        # Prepare the table for consumption
+        assert(len(input_array) == number_of_states)
+
+        rasterized = []
+        for row in input_array:
+            assert(len(row) == number_of_nonterminals)
+            rasterized.extend(row)
+
         # Memory
-        self.mem = Memory(width=self.table_width, depth=self.table_depth, init= [0x4a,0x3b,0x2c,0x1d])
+
+        self.mem = Memory(width=self.table_width, depth=self.table_depth, init=rasterized)
 
 
     def elaborate(self, platform):
@@ -199,7 +216,7 @@ class DummyPlug(Elaboratable):
     def elaborate(self, platform):
         m = Module()
 
-        m.submodules.table = table = GOTOtable(4,8)
+        m.submodules.table = table = GOTOtable(3,2,[[1,2],[3,4],[5,6]])
         counter = Signal(8)
         m.d.sync += counter.eq(counter+1)