         var (upperBits, upperOverflow) = UInt64.subtractWithOverflow(
             lhs.value.upperBits, rhs.value.upperBits
         )
-        // If the lower bits overflowed, we need to subtract 1 from the upper bits.
+        // If the lower bits overflowed, we need to subtract (borrow) 1 from the upper bits.
         if lowerOverflow {
             (upperBits, resultOverflow) = UInt64.subtractWithOverflow(upperBits, 1)
         }
         return (
             UInt128(upperBits: upperBits, lowerBits: lowerBits),
-            lowerOverflow || upperOverflow || resultOverflow
+            upperOverflow || resultOverflow
         )
     }
     public static func divideWithOverflow(lhs: UInt128, _ rhs: UInt128) -> (UInt128, overflow: Bool) {

            switch character {
            case digit: current = UInt128(character - digit.startIndex)
            case lower: current = UInt128(character - lower.startIndex) + 10
            default: throw UInt128Errors.Inconceivable
            }
            // Make room for current positional value.
            let (multiplyResult, multiplyOverflow) = UInt128.multiplyWithOverflow(

        }
        return (
            UInt128(upperBits: upperBits, lowerBits: lowerBits),
            upperOverflow || resultOverflow
        )
    }
    public static func subtractWithOverflow(lhs: UInt128, _ rhs: UInt128) -> (UInt128, overflow: Bool) {
