     let value: Double
 
     /// Represnts a unit in which `Timestamp` calculates `baseValue`.
-    var unit: Unit {
-        didSet {
-            baseValue = value * unit.baseValueMultiplier
-        }
-    }
+    let unit: Unit
 
     /// Represents a value which doesn't depend on any unit
     /// or unit's value. It can be treated as a base unit
     /// which all `Unit`s can be calculated from or stored in.
     /// Its value depends on a multiplier specified for each `Unit`.
-    private(set) var baseValue: Double
+    let baseValue: Double
+}
+
+// MARK: - Initializers
+
+extension Timestamp {
 
     /// Creates a new instance with given `value` in specified
     /// `unit`. `baseValue` is calculaed based on `value` and `unit`.

        return Timestamp(value: value, unit: otherUnit)
    }
}

extension Timestamp {


    /// - Parameter otherUnit: Specified in which `Unit` 
    ///   new `Timestamp` should be represented.
    func converted(to otherUnit: Unit) -> Timestamp {
        return Timestamp(baseValue: baseValue, unit: otherUnit)
    }

    /// Returns a new instance of `Timestamp` with given `Unit`.
