updates functor