* Abstract away common methods into rule-base, we don't just have rules anymore
we haver rules and rule-sets, rule-sets can contain children which are again rules
or rule-sets