Added Unit Of Work and Generic Repository pattern