public Region getRegionAt(int x, int y) {
		List<Region> candidates = new LinkedList<Region>();
		for (ContentIterator it = this.iterator(null); it.hasNext(); ) {
			ContentObject region = it.next();
			if (region.getCoords() != null) {
				Polygon coords = region.getCoords();
				if (coords.isPointInside(x, y)) {
					candidates.add((Region)region);
				}
			}
		}
		
		if (candidates.size() > 1) {
			//If multiple candidates -> sort by size and return smallest
			Collections.sort(candidates, getContentObjectSizeComparator());
		}
		if (!candidates.isEmpty())
			return candidates.get(0);
		
		/*for (int i=0; i<regions.size(); i++) {
			Region region = regions.getAt(i);
			if (region.getCoords() != null) {
				Polygon coords = region.getCoords();
				if (coords.isPointInside(x, y)) {
					return region;
				}
			}
		}*/
		return null;
	}