example of UnitOfWork with repositories