         }
         
         print("[Toast-Swift]: Warning! Invalid position for toast.")
-        return self.centerPointForPosition(HRToastPositionDefault as AnyObject, toast: toast)
-    }
-    
-    fileprivate func viewForMessage(_ msg: String?, title: String?, image: UIImage?) -> UIView? {
+        return self.centerPointForPosition(config.HRToastPosition as AnyObject, toast: toast, withConfiguration: config)
+    }
+    
+    fileprivate func viewForMessage(_ msg: String?, title: String?, image: UIImage?, withConfiguration config: HRToastConfig) -> UIView? {
         if msg == nil && title == nil && image == nil { return nil }
         
         let someTextBeingShown = (msg != nil || title != nil)
-        let wrapperView = createInitialView()
-        let contentsStackView = addContentsStackView(toWrapperView: wrapperView)
+        let wrapperView = createInitialView(withConfiguration: config)
+        let contentsStackView = addContentsStackView(toWrapperView: wrapperView, withConfiguration: config)
         
         if let image = image {
             addImage(image, toStackView: contentsStackView)
         }
         
         if someTextBeingShown {
-            addMessage(msg, andTitle: title, toStackView: contentsStackView)
+            addMessage(msg, andTitle: title, toStackView: contentsStackView, withConfiguration: config)
         }
         
         return wrapperView
     }
     
-    fileprivate func createInitialView() -> UIView {
+    fileprivate func createInitialView(withConfiguration config: HRToastConfig) -> UIView {
         let initialView = UIView()
         initialView.translatesAutoresizingMaskIntoConstraints = false
-        initialView.layer.cornerRadius = HRToastCornerRadius
-        initialView.backgroundColor = UIView.hr_toastThemeColor().withAlphaComponent(HRToastOpacity)
-        
-        if HRToastDisplayShadow {
+        initialView.layer.cornerRadius = config.HRToastCornerRadius
+        initialView.backgroundColor = UIView.hr_toastThemeColor().withAlphaComponent(config.HRToastOpacity)
+        
+        if config.HRToastDisplayShadow {
             initialView.layer.shadowColor = UIView.hr_toastThemeColor().cgColor
-            initialView.layer.shadowOpacity = Float(HRToastShadowOpacity)
-            initialView.layer.shadowRadius = HRToastShadowRadius
-            initialView.layer.shadowOffset = HRToastShadowOffset
+            initialView.layer.shadowOpacity = Float(config.HRToastShadowOpacity)
+            initialView.layer.shadowRadius = config.HRToastShadowRadius
+            initialView.layer.shadowOffset = config.HRToastShadowOffset
         }
         
         return initialView
     }
     
-    fileprivate func addContentsStackView(toWrapperView wrapperView: UIView) -> UIStackView {
+    fileprivate func addContentsStackView(toWrapperView wrapperView: UIView, withConfiguration config: HRToastConfig) -> UIStackView {
         let stackView = UIStackView()
         stackView.translatesAutoresizingMaskIntoConstraints = false
         stackView.backgroundColor = UIColor.clear
         stackView.axis = .horizontal
         stackView.alignment = .center
         stackView.distribution = .fill
-        stackView.spacing = HRToastVerticalMargin
+        stackView.spacing = config.HRToastVerticalMargin
         stackView.setContentHuggingPriority(1000, for: .vertical)
         stackView.setContentHuggingPriority(1000, for: .horizontal)
         
         wrapperView.addSubview(stackView)
         stackView.centerXAnchor.constraint(equalTo: wrapperView.centerXAnchor).isActive = true
-        let leftSideConstraint = stackView.leftAnchor.constraint(greaterThanOrEqualTo: wrapperView.leftAnchor, constant: HRToastHorizontalMargin)
+        let leftSideConstraint = stackView.leftAnchor.constraint(greaterThanOrEqualTo: wrapperView.leftAnchor, constant: config.HRToastHorizontalMargin)
         leftSideConstraint.priority = 1000
         leftSideConstraint.isActive = true
-        let rightSideConstraint = stackView.rightAnchor.constraint(lessThanOrEqualTo: wrapperView.rightAnchor, constant: -HRToastHorizontalMargin)
+        let rightSideConstraint = stackView.rightAnchor.constraint(lessThanOrEqualTo: wrapperView.rightAnchor, constant: -config.HRToastHorizontalMargin)
         rightSideConstraint.priority = 1000
         rightSideConstraint.isActive = true
-        let leftSideEqualConstraint = stackView.leftAnchor.constraint(equalTo: wrapperView.leftAnchor, constant: HRToastHorizontalMargin)
+        let leftSideEqualConstraint = stackView.leftAnchor.constraint(equalTo: wrapperView.leftAnchor, constant: config.HRToastHorizontalMargin)
         leftSideEqualConstraint.priority = 250
         leftSideEqualConstraint.isActive = true
-        let rightSideEqualConstraint = stackView.rightAnchor.constraint(equalTo: wrapperView.rightAnchor, constant: -HRToastHorizontalMargin)
+        let rightSideEqualConstraint = stackView.rightAnchor.constraint(equalTo: wrapperView.rightAnchor, constant: -config.HRToastHorizontalMargin)
         rightSideEqualConstraint.priority = 250
         rightSideEqualConstraint.isActive = true
-        stackView.topAnchor.constraint(equalTo: wrapperView.topAnchor, constant: HRToastVerticalMargin).isActive = true
-        stackView.bottomAnchor.constraint(equalTo: wrapperView.bottomAnchor, constant: -HRToastVerticalMargin).isActive = true
+        stackView.topAnchor.constraint(equalTo: wrapperView.topAnchor, constant: config.HRToastVerticalMargin).isActive = true
+        stackView.bottomAnchor.constraint(equalTo: wrapperView.bottomAnchor, constant: -config.HRToastVerticalMargin).isActive = true
         
         return stackView
     }

                       completion: nil)
    }
    
    func hideToastActivity() {
        let existingActivityView = objc_getAssociatedObject(self, &HRToastActivityView) as! UIView?
        if existingActivityView == nil { return }
        UIView.animate(withDuration: HRToastFadeDuration,
                       delay: 0.0,
                       options: UIViewAnimationOptions.curveEaseOut,
                       animations: {

    }
    
}
