             return .Negative
         case false where b.isNegative == false:
             return .Positive
-        default:
-            return .Different
+        case false where b.isNegative == true:
+            return .LeftPositive
+        case true where b.isNegative == false:
+            return .RightPositive
         }
+        
     }
 }
 

            return BigInteger(value: self.digits + value.digits)
        case .Negative:
            return BigInteger(value: self.digits + value.digits, negative:true)
        case .Different:
            print("Different")
        }
        return self
    }

    let digits:[Int]
    let isNegative:Bool
    
    init(value:String, negative:Bool = false) {
        isNegative = value[value.startIndex] == "-" ? true : false
        if isNegative {
            digits = value.characters.dropFirst().flatMap{Int(String($0))}
