Broke out rule gathering logic from _run_rules() into a new _get_rules() method