Maybe is better to apply a couple of new methods in order to customize the rules... like `setRules` or `addRules` at the same time, I am thinking that maybe is good to think about a way to cache results, so there is no need to recalculate them again.