this also catches "reduce"