throw with a ruleset