         }
     }
     
-    /// Initializes the logger using GRDB to interface with SQLite, and your standard URLSession for uploading
-    /// logs to the specified server.
+    /// Initializes a relay.
     ///
     /// - Parameters:
-    ///   - dbPath: Location for storing the database containing logs. Please be careful not to specify a nonpersistent
-    ///   location for production use.
-    ///
-    ///   - configuration: Remote configuration for uploading logs. See the `persistentDictionary` method on `LogRecord` for information
-    ///   on the JSON body and the `RelayRemoteConfiguration` class for options.
-    ///
-    ///   - session: session to use to upload the logs. If one is not provided a background session will be made
-    ///
-    /// - Throws: A DatabaseError is thrown whenever an SQLite error occurs. See the GRDB documentation here
-    ///   for more information: https://github.com/groue/GRDB.swift#documentation
-    ///
+    ///   - identifier: the identifier to be used for this relay. Each relay maintains it's own
+    ///                 internal sqlite database for bookkeeping.
+    ///
+    ///   - configuration: see the documentation for `RelayRemoteConfiguration` for more information.
+    ///
+    ///   - testSession: only to be used when running tests!
     required public init(identifier: String, configuration: RelayRemoteConfiguration, testSession: URLSessionProtocol? = nil) {
         
         self.identifier = identifier

        }
    }
    
    func flushLogs() {
        do {
            try dbQueue?.inDatabase({ db in
                let logRecords = try LogRecord.filter(Column("upload_task_id") == nil).fetchAll(db)

    }
    
    override init() {
        fatalError("Please use init(_, _, _) instead.")
    }
    
    
    /// Call in `application(_:handleEventsForBackgroundURLSession:completionHandler:)` in order
    /// for a relay to finish processing a log record once it succeeds/fails to upload. Take a
    /// look [here](https://developer.apple.com/reference/uikit/uiapplicationdelegate/1622941-application)
    /// for more information.
    ///
    /// - Parameters:
    ///   - identifier: The identifier passed from `application(_:handleEventsForBackgroundURLSession:completionHandler:)`
    ///                 If the identifer doesn't match the function will exit.
    ///
    ///   - completionHandler: The completion handler passed from `application(_:handleEventsForBackgroundURLSession:completionHandler:)`
    ///
    public func handleRelayUrlSessionEvents(identifier: String, completionHandler: @escaping () -> Void) {
        guard identifier == Relay.urlSessionIdentifier else { return }
        sessionCompletionHandler = completionHandler
    }
    

    /// Removes all logs from the internal database. Logs already passed to the system for uploading will not be cancelled.
    func reset() {
        do {
            try dbQueue?.inDatabase({ db in
                try db.drop(table: identifier)
