Added abstract repository class