returns empty string if no rule is handled