         super.text = newValue
     }
 
+    private lazy var _defaultRegion: String = PhoneNumberKit.defaultRegionCode()
+
     /// Override region to set a custom region. Automatically uses the default region code.
-    open var defaultRegion = PhoneNumberKit.defaultRegionCode() {
-        didSet {
-            partialFormatter.defaultRegion = defaultRegion
+    open var defaultRegion: String {
+        get {
+            return self._defaultRegion
         }
     }
 

        }
    }

    let partialFormatter: PartialFormatter

    let nonNumericSet: NSCharacterSet = {
        var mutableSet = NSMutableCharacterSet.decimalDigit().inverted

     - returns: UITextfield
     */
    override public init(frame: CGRect) {
        super.init(frame:frame)
        self._partialFormatter = PartialFormatter(phoneNumberKit: phoneNumberKit, defaultRegion: defaultRegion, withPrefix: withPrefix)
        self.setup()
    }

