public void subtract(int addressBegin, int addressEnd) {
		Entry<Integer, Integer> entry = ranges.floorEntry(addressBegin);
		if(entry.getValue()>addressEnd){// if placing range inside of an old range 
			ranges.put(addressEnd, entry.getValue());
			if(entry.getKey()==addressBegin){
				ranges.remove(entry.getKey());
			}
			else{
				ranges.put(entry.getKey(),addressBegin);
			}
		}
		else{
			entry=ranges.higherEntry(entry.getKey());
			while(entry.getValue()<addressEnd){
				ranges.remove(entry.getKey());
				entry=ranges.higherEntry(entry.getKey());
			}
			if(entry.getKey()<addressEnd){
				ranges.put(addressEnd, entry.getValue());
				ranges.remove(entry.getKey());
			}
		}
	}