Added layer of abstraction IRepository<>
Merged