Implemented UnitOfWork pattern