etape 2 basic functor