Added Repository pattern and Unit Of Work