add functor type