Repository Pattern used