PERangeList difference(PERange rangeb) {
		PERangeList difference = new PERangeList();

		int s = (this.begin < rangeb.begin) ? this.begin : rangeb.begin;
		int e = (this.end < rangeb.begin) ? this.end : rangeb.begin - 1;

		if (s <= e) {
			difference.add(new PERange(s, e));
		}

		s = (this.begin <= rangeb.end) ? rangeb.end + 1 : this.begin;
		e = (this.end > rangeb.end) ? this.end : rangeb.end;

		if (s <= e) {
			difference.add(new PERange(s, e));
		}

		return difference.size() == 0 ? null : difference;
	}