class MultipleLiveSearchSelectionHandler implements LiveSearchSelectionHandler<TYPE> {

    @Override
    public void selectItem(LiveSearchSelectorItem<TYPE> item) {

        LiveSearchSelectorItem<TYPE> selectedItem = selectedItems.stream()
                .filter(listItem -> listItem.getKey().equals(item.getKey())).findFirst()
                .orElse(null);

        if(selectedItem != null) {
            selectedItem.reset();
            selectedItems.remove(selectedItem);
        } else {
            item.select();
            selectedItems.add(item);
        }

        if(onChangeNotification != null) {
            onChangeNotification.execute();
        }
    }

    public  MultipleLiveSearchSelectionHandler();
    public  MultipleLiveSearchSelectionHandler(int maxDropDownTextItems);

}