begin to do reduction