first functor introduction