   }
   
   private func expandButton(completetion: ((complete: Bool)->Void)? = nil) {
+    
+    guard self.minButtonWidth != nil && self.minButtonWidth > 0.0 else { return }
     self.userInteractionEnabled = false
     
     self.adjustedWidthConstraints.left?.activate()

    // I don't know if this is the best solution, but it seems to work out well in this example
    dispatch_once(&checkHeightOnce) { () -> Void in
      self.minButtonWidth = self.frame.size.height
      print("minBtnWid: \(self.minButtonWidth)")
    }
  }

  
  // MARK: - Lazy Instances
  // ------------------------------------------------------------
  /* I like using UIControls over UIView's (or other subclasses, UIButton etc.) for custom behaviors because it gives a
     little more flexibility for target/actions */
  internal lazy var buttonView: UIControl = {
    let control: UIControl = UIControl()
    control.backgroundColor = UIColor.whiteColor()
