Why replacing `RuleInterface` with model class?