add user defined reduction feature