# Custom Implementation of REN Unit of Work

While REN’s standard Unit of Work and Repository services are ready-to-use out of the box, you are not limited to the defaults.

REN.Kit **DataKit** is designed for extensibility and flexibility: you can easily extend or override the default Unit of Work or Repository implementations to fit your project’s specific needs.

For example, you might want to:

* Add custom logging, performance monitoring, or auditing around database operations,
* Implement advanced business logic or validation rules within your repositories,
* Adapt data access patterns for special use cases (like soft deletes, tenant-aware filtering, or domain events).

To achieve this, you can simply inherit from the provided `RENUnitOfWork` or `RENRepository` classes, or implement the `IRENUnitOfWork` / `IRENRepository` interfaces with your own logic.

Just register your custom implementation during service configuration—REN.Kit will seamlessly use your extended or overridden classes wherever data access is required.

{% hint style="success" %}
## **Pro Tip:**

Extension and override patterns make REN.Kit DataKit a perfect fit for enterprise-grade projects, without sacrificing simplicity for smaller solutions. You get the best of both worlds: productivity and full control.
{% endhint %}
