reduction
renamed and moved