     @discardableResult
     public func show(_ parent: UIViewController?) -> Self {
         var type = self.type
-        type.durationType = dismissable ? .timed : .endless
-        type.timeToDismiss = time ?? 0
+        type.durationType = dismissible ? .timed : .endless
+        type.timeToDismiss = time
         type.iconImage = icon
-        Self.rmessage.showMessage(withSpec: type, atPosition: position, title: title ?? "",
+        Self.controller.showMessage(withSpec: type, atPosition: position, title: title ?? "",
                 body: body, viewController: parent, leftView: nil, rightView: nil, backgroundView: nil,
                 tapCompletion: actionOnClick, presentCompletion: nil, dismissCompletion: nil)
         return self
     }
 
-    public class func dismissActive() { Self.rmessage.dismissOnScreenMessage() }
+    public class func dismissActive() { Self.controller.dismissOnScreenMessage() }
 }


    public func action(onClick: @escaping () -> Void) -> Self {
        actionOnClick = onClick
        dismissable = false
        return self
    }

    public func dismissable(_ dismissable: Bool) -> Self {
        self.dismissable = dismissable
        return self
    }

    public func hanging() -> Self {
        dismissable = false
        return self
    }


    public var body: String?
    public var icon: UIImage?
    public var actionOnClick: (() -> Void)?
    public var dismissible = true

    private var position: RMessagePosition = .top
    private var type: RMessageSpec = normalSpec
    private var time: TimeInterval = 3
    private static var controller = { RMController() }()

    public override init() {
    }
