Adding Generic repository interface