         visualEffectView.contentView.addSubview(vibrancyView)
         setupFullSize(vibrancyView)
         
-        vibrancyView.contentView.addSubview(loadingStackView)
-        setupFullHeight(loadingStackView)
-        loadingStackView.centerXAnchor.constraint(equalTo: vibrancyView.centerXAnchor).isActive = true
-        loadingStackView.spacing = 4.0
-        
-        loadingStackView.addArrangedSubview(spinner)
-        
-        loadingLabel.text = defaultText
+        vibrancyView.contentView.addSubview(stackView)
+        setupFullHeight(stackView)
+        stackView.centerXAnchor.constraint(equalTo: vibrancyView.centerXAnchor).isActive = true
+        stackView.spacing = 4.0
+        
+        stackView.addArrangedSubview(spinner)
+        
+        messageLabel.text = defaultText
         if #available(iOSApplicationExtension 10.0, *) {
-            loadingLabel.adjustsFontForContentSizeCategory = true
-        }
-        loadingLabel.font = UIFont.preferredFont(forTextStyle: .caption1)
-        loadingStackView.addArrangedSubview(loadingLabel)
-        
-        vibrancyView.contentView.addSubview(errorStackView)
-        setupFullSize(errorStackView)
-        
-        errorStackView.addArrangedSubview(errorLabel)
-        if #available(iOSApplicationExtension 10.0, *) {
-            errorLabel.adjustsFontForContentSizeCategory = true
-        }
-        errorLabel.font = UIFont.preferredFont(forTextStyle: .caption1)
-        errorLabel.textAlignment = .center
-        
-        let closeLabel = UILabel()
-        closeLabel.text = "✕"
-        closeLabel.font = UIFont.preferredFont(forTextStyle: .caption1)
-        closeLabel.textAlignment = .center
-        closeLabel.translatesAutoresizingMaskIntoConstraints = false
-        closeLabel.widthAnchor.constraint(equalTo: closeLabel.heightAnchor).isActive = true
-        errorStackView.addArrangedSubview(closeLabel)
-        
-        errorStackView.isHidden = true
+            messageLabel.adjustsFontForContentSizeCategory = true
+        }
+        messageLabel.font = UIFont.preferredFont(forTextStyle: .caption1)
+        stackView.addArrangedSubview(messageLabel)
+        
+        fakeButton.text = defaultFakeButtonTitle
+        fakeButton.font = UIFont.preferredFont(forTextStyle: .caption1)
+        fakeButton.textAlignment = .center
+        fakeButton.translatesAutoresizingMaskIntoConstraints = false
+        fakeButton.widthAnchor.constraint(equalTo: fakeButton.heightAnchor).isActive = true
+        stackView.addArrangedSubview(fakeButton)
         
         let button = UIButton()
         addSubview(button)
         setupFullSize(button)
-        button.addTarget(self, action: #selector(LoadingBanner.dismissBanner), for: .touchUpInside)
+        button.addTarget(self, action: #selector(LoadingBanner.bannerTapped), for: .touchUpInside)
         
         updateColors()
     }


import UIKit

@IBDesignable open class LoadingBanner: UIView {

    // MARK: - Public properties

    
    // MARK: - Public functions
    
    open func showLoading(customButtonText: String? = nil) {
        status = .loading
        messageLabel.text = defaultText
        self.customButtonText = customButtonText
        toggleSpinner(toShowing: true)
        showBanner()
    }
    
    open func showMessage(_ text: String?, customButtonText: String? = nil) {
        status = .loading
        messageLabel.text = text
        toggleSpinner(toShowing: true)
        showBanner()
    }
    
    open func showSuccess(message: String?, customButtonText: String? = nil, for duration: Double = 2.0) {
        status = .success
        messageLabel.text = message
        self.customButtonText = customButtonText
        toggleSpinner(toShowing: false)
        showBanner()
        delay(duration) { 
