      - parameter presentingView: The view that the HUD will be located in.
      - parameter completion: Will be trigger when the HUD is removed.
      */
-    public static func showOrUpdateHUD(title: String, message: String, duration: Double, particleEffectFileName: String? = nil, presentingView: UIView, completion: (() -> Void)?) {
+    public static func showOrUpdateHUD(title: String, message: String, duration: Double, particleEffectFileName: String? = nil, presentingView: UIView, completion: (() -> Void)? = nil) {
         showHud(title: title, text: Array(arrayLiteral: message), icon: nil, duration: duration, sksFileName: particleEffectFileName, presentingView: presentingView, completion: completion)
     }
     

     - parameter presentingView: The view that the HUD will be located in.
     - parameter completion: Will be trigger when the HUD is removed.
     */
    public static func showOrUpdateHUD(icon: IconType, message: String, duration: Double, particleEffectFileName: String? = nil, presentingView: UIView, completion: (() -> Void)?) {
        let defaultIcon = iconImage(imageName: icon.rawValue)
        showHud(text: Array(arrayLiteral: message), icon: defaultIcon, duration: duration, sksFileName: particleEffectFileName , presentingView: presentingView, completion: completion)
    }

     - parameter presentingView: The view that the HUD is located in.
     - parameter completion: Will be trigger when the HUD is removed.
    */
    public static func removeHUD(animated: Bool, presentingView: UIView, completion: (() -> Void)? = nil) {
        if let hudView = getHudView(presentingView: presentingView) {
            hudView.removeHud(animated: animated, onDone: { _ in
                completion?()
