Why we need rule provider?