utility : reduce-pre
operations