      - parameter duration:        How long the dropdown will be shown before it's automatically dismissmed.
      */
     class func showWithAnimation(animationType: AnimationType = .Basic(timingFunction: CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseIn)),
-                                 title: String = Defaults.Title,
-                                 message: String = Defaults.Message,
-                                 backgroundColor: UIColor = Defaults.BackgroundColor,
-                                 textColor: UIColor = Defaults.TextColor,
-                                 duration: Double = Defaults.Duration) {
+                                 title           :String = Defaults.Title,
+                                 message         :String = Defaults.Message,
+                                 backgroundColor :UIColor = Defaults.BackgroundColor,
+                                 textColor       :UIColor = Defaults.TextColor,
+                                 duration        :Double = Defaults.Duration,
+                                 delegate        :CRDropdownAlertDelegate? = nil) {
         
         // Ensure that everything happens on the main queue
         DispatchQueue.main.async {

            dropdown.messageLabel.textColor = textColor
            dropdown.messageLabel.numberOfLines = 0
            dropdown.backgroundColor = backgroundColor
            
            // Construct a padding view that will cover the top of the dropdown in the case of a spring animation where it bounces past it's bounds
            let paddingView = UIView()

        }
    }
    
    var delegate :CRDropdownAlertDelegate?
    
    // MARK: - Initialization
    
