diff --git a/stack.py b/stack.py
index f8c80fc8ff7d3fcbb2bf914674a72fbaabaf1971..38414c12e14712c3a0b61964f3a3dce536bb88d1 100644
--- a/stack.py
+++ b/stack.py
@@ -206,15 +206,17 @@ class InspectableStack(Elaboratable):
 
 
 class HitOrMiss(Elaboratable):
-    def __init__(self, item_width, stack_depth, reduce_ruleset, shift_ruleset):
-        #assert(len(reduce_ruleset) == len(shift_ruleset))
-
+    def __init__(self, item_width, stack_depth, fastreject_ruleset, forceshift_ruleset, reduce_ruleset, reduce_selector_ruleset):
         # Parameters
-        self.reduce_ruleset = reduce_ruleset
-        self.shift_ruleset = shift_ruleset
         self.item_width = item_width
         self.stack_depth = stack_depth
 
+        # Rulepack
+        self.fastreject_ruleset      = fastreject_ruleset
+        self.forceshift_ruleset      = forceshift_ruleset
+        self.reduce_ruleset          = reduce_ruleset
+        self.reduce_selector_ruleset = reduce_selector_ruleset
+
         # Signals
         self.new_item_in   = Signal(item_width)
         self.stack_view_in = Array([Signal(item_width) for _ in range(stack_depth)])