     /// 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
+            return properties.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)
-            }
+            properties.era = newValue
         }
     }
     

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

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