Much more refactoring of functor_arrfunc