     }
 
     private func setupViews() {
-        self.view.addSubview(self.actionGroupView)
-        self.view.addSubview(self.cancelGroupView)
         self.setupGroupViews()
 
         let swipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "recognizeGestures:")

        self.view.removeConstraints(self.view.constraints)
        self.setupGroupViews()

        self.cancelGroupView.removeConstraints(self.cancelControlConstraints)
        self.cancelControlConstraints = self.constraintsForViews(self.cancelControls)
        self.cancelGroupView.addConstraints(self.cancelControlConstraints)
        self.actionGroupView.removeConstraints(self.actionControlConstraints)
        self.actionControlConstraints = self.constraintsForViews(self.actionControlsWithTitle())
        self.actionGroupView.addConstraints(self.actionControlConstraints)
    }

    func handleTaps(sender: UIControl) {

        return views
    }

    func updateCancelContraints() {
        self.cancelGroupView.removeConstraints(self.cancelControlConstraints)
        self.cancelControlConstraints = self.constraintsForViews(self.cancelControls)
        self.cancelGroupView.addConstraints(self.cancelControlConstraints)
    }

    func updateActionContraints() {
        self.actionGroupView.removeConstraints(self.actionControlConstraints)
        self.actionControlConstraints = self.constraintsForViews(self.actionControlsWithTitle())
        self.actionGroupView.addConstraints(self.actionControlConstraints)
    }


    // MARK: Control positioning

    private func setupGroupViews() {
        self.view.addSubview(self.actionGroupView)
        self.view.addSubview(self.cancelGroupView)

        let setupGroupView: UIView -> Void = { groupView in
            groupView.clipsToBounds = true
            groupView.layer.cornerRadius = CGFloat(self.cornerRadius)
