# Conventions override

Radical is conventions based, [runtime conventions](https://docs.radicalframework.com/release-2/presentation/conventions/runtime-conventions) and [bootstrap conventions](https://docs.radicalframework.com/release-2/presentation/conventions/bootstrap-conventions). To facilitate conventions override, to replace or integrate a default behavior the concept of default conventions is supported.

Both [runtime conventions](https://docs.radicalframework.com/release-2/presentation/conventions/runtime-conventions) and [bootstrap conventions](https://docs.radicalframework.com/release-2/presentation/conventions/bootstrap-conventions) support the following syntax:

```csharp
conventions.IsViewModel = type => 
{
    if ( type.Namespace == "MyViewModelsNamespace" ) 
    {
        return true;
    }
    return conventions.DefaultIsViewModel( type );
};
```

For every convention there is a convention whose name is the same but prefixed with `Default*` so that it's not anymore required to keep track of the original convention we are overriding.
