repository interface