     let configuration: Configuration
     weak var delegate: PinpointKitDelegate?
     
-    init(configuration: Configuration = Configuration.defaultConfiguration, delegate: PinpointKitDelegate? = nil)  {
+    init(configuration: Configuration = Configuration(), delegate: PinpointKitDelegate? = nil)  {
         self.configuration = configuration
         self.delegate = delegate
     }


class FeedbackViewController: UIViewController, FeedbackCollector {}

class MailSender: NSObject, Sender {}


    func pinpointKit(pinpointKit: PinpointKit, didFinishWithResult: Bool)
}

// Default protocol extension to make all functions in the delegate optional.
extension PinpointKitDelegate {
    func pinpointKit(pinpointKit: PinpointKit, willShowFeedbackCollector: FeedbackCollector) {}
    func pinpointKit(pinpointKit: PinpointKit, didShowFeedbackCollector: FeedbackCollector) {}
    
    func pinpointKit(pinpointKit: PinpointKit, willSendFeedback: Feedback) {}
    func pinpointKit(pinpointKit: PinpointKit, didSendFeedback: Feedback) {}
    
    func pinpointKit(pinpointKit: PinpointKit, willShowScreenshotEditor: ScreenshotEditor) {}
    func pinpointKit(pinpointKit: PinpointKit, didShowScreenshotEditor: ScreenshotEditor) {}
    
    func pinpointKit(pinpointKit: PinpointKit, didFinishWithResult: Bool) {}
}

protocol Sender {}

protocol LogCollector {}

struct Feedback {

