make ReducingProc a class (less metaprogramming)