on reprend les oop from scratch