 public struct TimeMath {
 
   var _secondsSinceEpoch = 0
-  var _store: TimeStore
+  var _buffer: TimeBuffer
 
   public init() {
     self.init(secondsSinceEpoch: time(nil))

  public init(secondsSinceEpoch: Int) {
    var n = secondsSinceEpoch
    _secondsSinceEpoch = n
    _store = TimeStore(store: gmtime(&n))
  }

  public init(store: UnsafeMutablePointer<tm>) {
    _store = TimeStore(store: store)
    _secondsSinceEpoch = _store.secondsSinceEpoch
  }

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

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

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

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


    set {
      var n = newValue
      _secondsSinceEpoch = n
      _buffer = TimeBuffer(buffer: gmtime(&n))
    }
  }

  public var buffer: TimeBuffer {
    return _buffer
  }

}


public struct Time {

  public init() {

  }

}
