protected PoliLine pop(PoliLine master, Point first, Point last) {
		
		Iterator<Point> cursor = master.iterator();
		LinkedList<Point> poppedPoints = new LinkedList<Point>();
		poppedPoints.add(first);
		boolean started = false;
		while (cursor.hasNext()) {
			Point x = cursor.next();
			if (started && x.equals(last)) {
				break;
			} else if (started) {
				poppedPoints.add(x);
				cursor.remove();
			} else if (x.equals(first)) {
				started = true;
			} /* else {
				continue;
			} */
			if (!cursor.hasNext() && started) {
				cursor = master.iterator();
			}
			
		}
		poppedPoints.add(last);
		
		return new PoliLine(poppedPoints.toArray(new Point[poppedPoints.size()]));
	}