     /// is not enforced.
     public var month: Int {
         get {
-            guard case .date(_, _, let month, _) = self else {
-                return 0
-            }
-            return month
+            return properties.month
         }
         set {
-            if case let .date(era, year, _, day) = self {
-                self = .date(era: era, year: year, month: month, day: day)
-            }
-            else {
-                self = .date(era: .ad, year: 0, month: newValue, day: 0)
-            }
+            properties.month = newValue
         }
     }
     

    /// Whether the year is in A.D. or B.C.
    public var era: Era {
        get {
            guard case .date(let era, _, _, _) = self else {
                return .ad
            }
            return era
        }
        set {
            if case let .date(_, year, month, day) = self {
                self = .date(era: newValue, year: year, month: month, day: day)
            }
            else {
                self = .date(era: newValue, year: 0, month: 0, day: 0)
            }
        }
    }
    

    /// is not enforced.
    public var year: Int {
        get {
            return properties.year
        }
        set {
            properties.year = newValue
        }
    }
    
