I’m on my phone so can’t do a thorough job but the first thing that pops it is you should apply Design Pattern: How to Structure a Rule.
You might be able to apply something from Design Pattern: Encoding and Accessing Values in Rules but I’m not as sure.