> For the complete documentation index, see [llms.txt](https://docs.radicalframework.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.radicalframework.com/upgrade-guides/2.0.0-to-2.1.0.md).

# Radical 2.0.0 to Radical 2.1.0

In version `2.1.0` the `IRequireValidationCallback<TViewModel>` has been obsoleted. It'll be removed in version 3.0.0. The `IRequireValidationCallback<>` behavior can be replaced by using a [custom validation rule](/presentation/validation-validationservice.md#custom-rules), like in the following snippet:

```csharp
class SampleViewModel : AbstractViewModel, IRequireValidation
{
    public SampleViewModel()
    {
        ValidationService = new DataAnnotationValidationService<SampleViewModel>( this )
            .AddRule
            (
                property: () => this.Text,
                rule: ctx => ctx.Failed("This is the error message.")
            );
    }
}
```
