Permitation + Shuffled Values
Recactor: Replace Conditional with Polymorphism: create TopStatefulRule and TriggeredStatefulRule
Default rules + Refactoring