       
       view.addConstraints([trailing, leading, top, bottom])
    }
+  
+  private func updateIconImage() {
+    if iconImageView != nil {
+      let imageOffset = iconBackgroundRadius / 2
+      var buttonOffset:CGFloat = 0.0
+      if buttonContainerView.arrangedSubviews.count > 2 {
+        buttonOffset = 45.0 * CGFloat(buttonContainerView.arrangedSubviews.count - 2)
+      }
+      shapeLayer.position = CGPoint(x: iconImageView!.center.x - imageOffset, y: iconImageView!.center.y + imageOffset - buttonOffset)
+    }
+  }
 
    // MARK: Public Methods
    

         updateTitleImage()
      }
   }
   
   // MessageView
   private var messageView = UIView()
   private var messageLabel = UILabel()

      // Setup Image Circle
      if iconImage != nil {
         
         let circlePath = UIBezierPath(arcCenter: CGPoint(x: self.view.frame.maxX / 2,y: containerView.center.y * 1.65), radius: CGFloat(iconBackgroundRadius), startAngle: CGFloat(0), endAngle:CGFloat(M_PI * 2), clockwise: true)
         
         shapeLayer = CAShapeLayer()
         shapeLayer.path = circlePath.cgPath
