         self.viewHeight = size.height
         
         var yPos:CGFloat = 0.0
-        var contentWidth:CGFloat = self.modalWidth - (self.modalPadding*2)
+        var contentWidth:CGFloat = self.alertWidth - (self.padding*2)
         
         // position the icon image view, if there is one
         if self.iconImageView != nil {
             yPos += iconImageView.frame.height
-            var centerX = (self.modalWidth-self.iconImageView.frame.width)/2
-            self.iconImageView.frame.origin = CGPoint(x: centerX, y: self.modalPadding)
-            yPos += modalPadding
+            var centerX = (self.alertWidth-self.iconImageView.frame.width)/2
+            self.iconImageView.frame.origin = CGPoint(x: centerX, y: self.padding)
+            yPos += padding
         }
         
         // position the title
-        let titleString = modalTitleLabel.text! as NSString
-        let titleAttr = [NSFontAttributeName:modalTitleLabel.font]
+        let titleString = titleLabel.text! as NSString
+        let titleAttr = [NSFontAttributeName:titleLabel.font]
         let titleSize = CGSize(width: contentWidth, height: 90)
         let titleRect = titleString.boundingRectWithSize(titleSize, options: NSStringDrawingOptions.UsesLineFragmentOrigin, attributes: titleAttr, context: nil)
-        yPos += modalPadding
-        self.modalTitleLabel.frame = CGRect(x: self.modalPadding, y: yPos, width: self.modalWidth - (self.modalPadding*2), height: ceil(titleRect.size.height))
+        yPos += padding
+        self.titleLabel.frame = CGRect(x: self.padding, y: yPos, width: self.alertWidth - (self.padding*2), height: ceil(titleRect.size.height))
         yPos += ceil(titleRect.size.height)
         
         
         // position text
-        if self.modalTextView != nil {
-            let textString = modalTextView.text! as NSString
-            let textAttr = [NSFontAttributeName:modalTextView.font]
+        if self.textView != nil {
+            let textString = textView.text! as NSString
+            let textAttr = [NSFontAttributeName:textView.font]
             let textSize = CGSize(width: contentWidth, height: 90)
             let textRect = textString.boundingRectWithSize(textSize, options: NSStringDrawingOptions.UsesLineFragmentOrigin, attributes: textAttr, context: nil)
-            self.modalTextView.frame = CGRect(x: self.modalPadding, y: yPos, width: self.modalWidth - (self.modalPadding*2), height: ceil(textRect.size.height)*2)
-            yPos += ceil(textRect.size.height) + modalPadding/2
+            self.textView.frame = CGRect(x: self.padding, y: yPos, width: self.alertWidth - (self.padding*2), height: ceil(textRect.size.height)*2)
+            yPos += ceil(textRect.size.height) + padding/2
         }
         
         // position the button
-        yPos += self.modalPadding
-        self.modalButton.frame = CGRect(x: 0, y: yPos, width: self.modalWidth, height: self.buttonHeight)
+        yPos += self.padding
+        self.dismissButton.frame = CGRect(x: 0, y: yPos, width: self.alertWidth, height: self.buttonHeight)
         if self.buttonLabel != nil {
-            self.buttonLabel.frame = CGRect(x: self.modalPadding, y: (self.buttonHeight/2) - 15, width: self.modalWidth - (self.modalPadding*2), height: 30)
+            self.buttonLabel.frame = CGRect(x: self.padding, y: (self.buttonHeight/2) - 15, width: self.alertWidth - (self.padding*2), height: 30)
         }
         yPos += self.buttonHeight
         
         // size the background view
-        self.modalBackgroundView.frame = CGRect(x: 0, y: 0, width: self.modalWidth, height: yPos)
+        self.alertBackgroundView.frame = CGRect(x: 0, y: 0, width: self.alertWidth, height: yPos)
         
         // size the container that holds everything together
-        self.containerView.frame = CGRect(x: (self.viewWidth!-self.modalWidth)/2, y: (self.viewHeight! - yPos)/2, width: self.modalWidth, height: yPos)
-    }
-    
-    
-    
-    func info(viewController: UIViewController, title: String, text: String?=nil) -> JSSAlertViewResponder {
-        return self.show(viewController, title: title, text: text, buttonText: nil, color: UIColorFromHex(0x3498db, alpha: 1))
-    }
-    
-    func success(viewController: UIViewController, title: String, text: String?=nil) -> JSSAlertViewResponder {
-        return self.show(viewController, title: title, text: text, buttonText: nil, color: UIColorFromHex(0x2ecc71, alpha: 1))
-    }
-    
-    func warning(viewController: UIViewController, title: String, text: String?=nil) -> JSSAlertViewResponder {
-        return self.show(viewController, title: title, text: text, buttonText: nil, color: UIColorFromHex(0xf1c40f, alpha: 1))
-    }
-    
-    func danger(viewController: UIViewController, title: String, text: String?=nil) -> JSSAlertViewResponder {
-        return self.show(viewController, title: title, text: text, buttonText: nil, color: UIColorFromHex(0xe74c3c, alpha: 1))
+        self.containerView.frame = CGRect(x: (self.viewWidth!-self.alertWidth)/2, y: (self.viewHeight! - yPos)/2, width: self.alertWidth, height: yPos)
+    }
+    
+    
+    
+    func info(viewController: UIViewController, title: String, text: String?=nil, buttonText: String?=nil) -> JSSAlertViewResponder {
+        return self.show(viewController, title: title, text: text, buttonText: buttonText, color: UIColorFromHex(0x3498db, alpha: 1))
+    }
+    
+    func success(viewController: UIViewController, title: String, text: String?=nil, buttonText: String?=nil) -> JSSAlertViewResponder {
+        return self.show(viewController, title: title, text: text, buttonText: buttonText, color: UIColorFromHex(0x2ecc71, alpha: 1))
+    }
+    
+    func warning(viewController: UIViewController, title: String, text: String?=nil, buttonText: String?=nil) -> JSSAlertViewResponder {
+        var alertview = self.show(viewController, title: title, text: text, buttonText: buttonText, color: UIColorFromHex(0xf1c40f, alpha: 1))
+        alertview.setTextTheme(.Dark)
+        return alertview
+    }
+    
+    func danger(viewController: UIViewController, title: String, text: String?=nil, buttonText: String?=nil) -> JSSAlertViewResponder {
+        return self.show(viewController, title: title, text: text, buttonText: buttonText, color: UIColorFromHex(0xe74c3c, alpha: 1))
     }
     
     func show(viewController: UIViewController, title: String, text: String?=nil, buttonText: String?=nil, color: UIColor?=nil, iconImage: UIImage?=nil) -> JSSAlertViewResponder {

class JSSAlertView: UIViewController {
    
    var containerView:UIView!
    var modalBackgroundView:UIView!
    var modalButton:UIButton!
    var buttonLabel:UILabel!
    var modalTitleLabel:UILabel!
    var modalTextView:UITextView!
    var modalIconView:UIView!
    var rootViewController:UIViewController!
    var iconImage:UIImage!
    var iconImageView:UIImageView!

        }
        // relayout to account for size changes
        self.viewDidLayoutSubviews()
    }
    
    func setTextTheme(theme: TextColorTheme) {
        switch theme {
            case .Light:
                recolorText(lightTextColor)
            case .Dark:
                recolorText(darkTextColor)
        }
    }
    
    func recolorText(color: UIColor) {
        titleLabel.textColor = color
        if textView != nil {
            textView.textColor = color
        }
        buttonLabel.textColor = color
    }
    
    required init(coder aDecoder: NSCoder) {
