public boolean add(T e) {
		boolean existsElement = false;
		
		Iterator<T> it = iterator();
		while(it.hasNext() && !existsElement){
			T nextElement = it.next();
			if(nextElement.equals(e)){
				// Element found
				existsElement = true;
				Comparator<? super T> comparator = comparator();
				int compare = comparator.compare(nextElement, e);
				if(compare > 0){
					remove(nextElement);
					super.add(e);
					//element added so return true
					return true;
				}
				
			}
		}
		
		if(!existsElement){
			super.add(e);
		}
		
		return false;
	}