adding functor