Refactor ESA::Ruleset, refs #4