separate out functors part (now rely on NumericFunctors)