vectors
functor for vector