     func didSelectBubble(bubble: Int)
 }
 
-public class BubbleViewController: UIViewController {
+public class BubbleViewController: UIViewController, UICollisionBehaviorDelegate {
     public var dataSource: BubbleViewDataSource?
     public var delegate: BubbleViewDelegate?
     var animator: UIDynamicAnimator!

    private func configureFocused(bubble: BubbleView) {
        assert(bubble.index != nil)
        let newSnap = UISnapBehavior(item: bubble, snapToPoint: CGPoint(x: view.frame.width / 2.0, y: view.frame.height / 2.0))
        animator.addBehavior(newSnap)
        focusedSnap = newSnap
        focusedBubble = bubble

    private func removeBubble(bubble: BubbleView) {
        tapRecognizers.removeValueForKey(bubble)
        removeBehaviors(bubble)
        UIView.animateWithDuration(0.4, delay: 0.0, usingSpringWithDamping: 0.2, initialSpringVelocity: 2.0, options: .CurveEaseIn, animations: {
            bubble.transform = CGAffineTransformMakeScale(0.1, 0.1)
            }) { (_) in
                bubble.removeFromSuperview()
                bubble.transform = CGAffineTransformMakeScale(1.0, 1.0)
        }
        indexToBubble.removeValueForKey(bubble.index!)
        bubble.index = nil
    }
