logique pour les Generic types