     set {
       var n = newValue
       _secondsSinceEpoch = n
-      _store = TimeStore(store: gmtime(&n))
+      _buffer = TimeBuffer(buffer: gmtime(&n))
     }
   }
 
-  public var store: TimeStore {
-    return _store
+  public var buffer: TimeBuffer {
+    return _buffer
   }
 
 }
+
+
+public struct Time {
+
+  public init() {
+
+  }
+
+}

public struct TimeMath {

  var _secondsSinceEpoch = 0
  var _store: TimeStore

  public init() {
    self.init(secondsSinceEpoch: time(nil))

  public init(secondsSinceEpoch: Int) {
    var n = secondsSinceEpoch
    _secondsSinceEpoch = n
    _buffer = TimeBuffer(buffer: gmtime(&n))
  }

  public init(buffer: UnsafeMutablePointer<tm>) {
    _buffer = TimeBuffer(buffer: buffer)
    _secondsSinceEpoch = _buffer.secondsSinceEpoch
  }

  public var day: Int {
    get { return Int(_buffer.day) }
    set {
      secondsSinceEpoch += (newValue - Int(_buffer.day)) * 86400
    }
  }

  public var hour: Int {
    get { return Int(_buffer.hour) }
    set {
      secondsSinceEpoch += (newValue - Int(_buffer.hour)) * 3600
    }
  }

  public var minute: Int {
    get { return Int(_buffer.minute) }
    set {
      secondsSinceEpoch += (newValue - Int(_buffer.minute)) * 60
    }
  }

  public var second: Int {
    get { return Int(_buffer.second) }
    set {
      secondsSinceEpoch += newValue - Int(_buffer.second)
    }
  }

