 
   open var endAt: Date?
 
+  public let file: String
+  public let function: String
+  public let line: UInt
+
   // MARK: - Initializers
 
-  public required init(name: String, threshold: TimeInterval? = nil) {
+  public required init(name: String, threshold: TimeInterval? = nil, file: String = #file, function: String = #function, line: UInt = #line) {
 
     self.name = name
     self.threshold = threshold
+    self.file = file
+    self.function = function
+    self.line = line
   }
 
   @discardableResult

// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

open class Measure: Hashable {

  public struct Result {

        endAt: Date(),
        time: 0,
        threshold: nil,
        isThresholdExceeded: false,
        file: file,
        function: function,
        line: line
      )
    }

    endAt = _endAt
