 
   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

  @discardableResult
  open func start() -> Measure {

    startAt = Date()
    return self
  }

  @discardableResult
  open func end() -> Result {

    let _endAt = Date()

    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: Date(),
        endAt: Date(),
        time: 0,
        threshold: nil,
        isThresholdExceeded: false,


  open var threshold: TimeInterval?

  open var startAt: TimeInterval?

  open var endAt: TimeInterval?

  public let file: String
  public let function: String
