model implémentation