             imageView?.frame = CGRect(x: style.horizontalPadding, y: style.verticalPadding, width: style.imageSize.width, height: style.imageSize.height)
         }
         
-        var imageX: CGFloat = 0.0
-        var imageWidth: CGFloat = 0.0
-        var imageHeight: CGFloat = 0.0
+        var imageRect = CGRectZero
         
         if let imageView = imageView {
-            imageX = style.horizontalPadding
-            imageWidth = imageView.bounds.size.width
-            imageHeight = imageView.bounds.size.height
+            imageRect.origin.x = style.horizontalPadding
+            imageRect.origin.y = style.verticalPadding
+            imageRect.size.width = imageView.bounds.size.width
+            imageRect.size.height = imageView.bounds.size.height
         }
 
         if let title = title {

            messageLabel?.textColor = style.messageColor
            messageLabel?.backgroundColor = UIColor.clearColor()
            
            let maxMessageSize = CGSize(width: (self.bounds.size.width * style.maxWidthPercentage) - imageWidth, height: self.bounds.size.height * style.maxHeightPercentage)
            let messageSize = messageLabel?.sizeThatFits(maxMessageSize)
            if let messageSize = messageSize {
                messageLabel?.frame = CGRect(x: 0.0, y: 0.0, width: messageSize.width, height: messageSize.height)
            }
        }
  
        var titleX: CGFloat = 0.0
        var titleY: CGFloat = 0.0
        var titleWidth: CGFloat = 0.0
        var titleHeight: CGFloat = 0.0
        
        if let titleLabel = titleLabel {
            titleX = imageX + imageWidth + style.horizontalPadding
            titleY = style.verticalPadding
            titleWidth = titleLabel.bounds.size.width
            titleHeight = titleLabel.bounds.size.height
        }
        
        var messageX: CGFloat = 0.0
        var messageY: CGFloat = 0.0
        var messageWidth: CGFloat = 0.0
        var messageHeight: CGFloat = 0.0
        
        if let messageLabel = messageLabel {
            messageX = imageX + imageWidth + style.horizontalPadding
            messageY = titleY + titleHeight + style.verticalPadding
            messageWidth = messageLabel.bounds.size.width
            messageHeight = messageLabel.bounds.size.height
        }
        
        let longerWidth = max(titleWidth, messageWidth)
        let longerX = max(titleX, messageX)
        let wrapperWidth = max((imageWidth + (style.horizontalPadding * 2.0)), (longerX + longerWidth + style.horizontalPadding))
        let wrapperHeight = max((messageY + messageHeight + style.verticalPadding), (imageHeight + (style.verticalPadding * 2.0)))
        
        wrapperView.frame = CGRect(x: 0.0, y: 0.0, width: wrapperWidth, height: wrapperHeight)
        
        if let titleLabel = titleLabel {
            titleLabel.frame = CGRect(x: titleX, y: titleY, width: titleWidth, height: titleHeight)
            wrapperView.addSubview(titleLabel)
        }
        
        if let messageLabel = messageLabel {
            messageLabel.frame = CGRect(x: messageX, y: messageY, width: messageWidth, height: messageHeight)
            wrapperView.addSubview(messageLabel)
        }
        

            titleLabel?.backgroundColor = UIColor.clearColor();
            titleLabel?.text = title;
            
            let maxTitleSize = CGSize(width: (self.bounds.size.width * style.maxWidthPercentage) - imageRect.size.width, height: self.bounds.size.height * style.maxHeightPercentage)
            let titleSize = titleLabel?.sizeThatFits(maxTitleSize)
            if let titleSize = titleSize {
                titleLabel?.frame = CGRect(x: 0.0, y: 0.0, width: titleSize.width, height: titleSize.height)
