UnitOfWork implementation