     self.setNeedsUpdateConstraints()
     
     UIView.animateWithDuration(0.45, animations: { () -> Void in
-
       self.layoutIfNeeded()
-      
-      }) { (complete: Bool) -> Void in
-        if complete {
-          self.userInteractionEnabled = true
-        }
-    }
-  }
-  
-  internal func expandButton() {
+      }, completion: completetion)
+  }
+  
+  internal func expandButton(completetion: ((complete: Bool)->Void)? = nil) {
     self.userInteractionEnabled = false
     
     self.adjustedWidthConstraints.left?.activate()

      
    case .Following:
      self.updateButtonToState(.NotFollowing)
      
    }
  }
  

        self.buttonView.backgroundColor = ConceptColors.OffWhite
        self.buttonLabel.textColor = ConceptColors.DarkText
        self.currentButtonState = .NotFollowing
        self.buttonLabel.alpha = 1.0
        self.spinnerImageView.alpha = 0.0
        
      case .Following:
