implémentation des différentes classes