                 }
                 self.changedSelection?(self);
             }
-        case .Single:
-            if self.countOfSelection() == 0 {
-                if let firstControl = self.controls.first {
-                    firstControl.selected = true
-                    self.changedSelection?(self);
-                }
-            }
+        default:
+            throw CPSelectionErrorType.WrongSelectionType
         }
     }
 

    }

    @objc func touchUpInsideAtControl(control: UIControl) {
        if self.selectionType == .Single {
            self.unselectAll()
        }

        control.selected = !control.selected

        self.changedSelection?(self);
    }

        return self
    }

    public func selectAll() throws {
        switch self.selectionType {
        case .Multiple:
            if self.countOfSelection() != self.controls.count {
