Functor arrrunc refactor