 
   public struct Result {
     public let name: String
-    public let startAt: Date
-    public let endAt: Date
+    public let startAt: TimeInterval
+    public let endAt: TimeInterval
     public let time: TimeInterval
     public let threshold: TimeInterval?
     public let isThresholdExceeded: Bool


    endAt = _endAt

    let time = _endAt.timeIntervalSinceReferenceDate - startAt.timeIntervalSinceReferenceDate

    let isThresholdExceeded: Bool


  @discardableResult
  open func start() -> Measure {

    startAt = CACurrentMediaTime()
    return self
  }

  @discardableResult
  open func end() -> Result {

    let _endAt = CACurrentMediaTime()

    guard let startAt = startAt else {
      assertionFailure("Measurement has not begun, please call start()")
      return Result(
        name: name + " :: Measurement has not begun, please call start()",
        startAt: TimeInterval(),
        endAt: TimeInterval(),
        time: 0,
        threshold: nil,
        isThresholdExceeded: false,
