renamed vreduce to reduce (passed)