         }
     }
     
-    public func processLogUploadTask(task: URLSessionUploadTask) {
+    /// When a log succeeds or fails to upload, `processLogUploadTask` is called to do post processing.
+    ///
+    /// - Parameter task: The completed task.
+    ///
+    private func processLogUploadTask(task: URLSessionUploadTask) {
         do {
             try dbQueue?.inDatabase { db in
                 guard let record = try LogRecord.filter(Column("upload_task_id") == task.taskIdentifier).fetchOne(db) else { return  }

        }
    }
    
    public func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) {
        if let task = task as? URLSessionUploadTask {
            processLogUploadTask(task: task)

        }
    }
    
    /// Initializes a relay.
    ///
    /// - Parameters:
    ///   - 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
