reductions and stuff