Generic Unit of Work & (Extensible) Repositories Framework