List<Layered> removeSelectedLayeredComponents() {
		if (layerBasket.isEmpty())
			return null;
		List<Layered> a = null;
		Layered c = null;
		boolean intersected = false;
		synchronized (layerBasket) {
			for (Iterator it = layerBasket.iterator(); it.hasNext();) {
				c = (Layered) it.next();
				if (c.getHost() != null)
					continue;
				if (c instanceof LineComponent) {
					intersected = ((LineComponent) c).intersects(selectedArea);
				} else if (c instanceof RectangleComponent) {
					intersected = ((RectangleComponent) c).intersects(selectedArea);
				} else if (c instanceof TriangleComponent) {
					intersected = ((TriangleComponent) c).intersects(selectedArea);
				} else if (c instanceof EllipseComponent) {
					intersected = ((EllipseComponent) c).intersects(selectedArea);
				} else if (c instanceof ImageComponent) {
					ImageComponent ic = (ImageComponent) c;
					intersected = selectedArea.intersects(ic.getRx(), ic.getRy(), ic.getLogicalScreenWidth(), ic.getLogicalScreenHeight());
				} else if (c instanceof TextBoxComponent) {
					TextBoxComponent tc = (TextBoxComponent) c;
					intersected = selectedArea.intersects(tc.getRx(), tc.getRy(), c.getWidth(), c.getHeight());
				}
				if (intersected) {
					if (a == null)
						a = new ArrayList<Layered>();
					a.add(c);
					it.remove();
				}
			}
		}
		return a;
	}