renamed "reduce"