protected void initialize() {
		this.markerModels = new LinkedList<AbstractMarkerModel>();
		List<PictureObject> pictures = this.files.getPictureList(); //fetch pictures
		List<LocationObject> locations = new LinkedList<LocationObject>();
		int nbrOfPictures = pictures.size();
	
		int index;
		for (index = 0; index < nbrOfPictures; index++) {
			PictureObject picture = pictures.get(index);
			LocationObject location = picture.getLocation();
			if (location != null) {
				if (location.validPosition()) { 
					this.markerModels.add(new MarkerModel(picture));
					locations.add(picture.getLocation());
				}
			}
		}
		
		calibrateMap(locations); //make every location fit on the screen
		int nbrOfMarkers = this.markerModels.size();
		for (index = 0; index < nbrOfMarkers; index++) {
			LocationObject location = locations.get(index);
			Point pixelPosition = getMapPanel().getPixelPosition(location);
			this.markerModels.get(index).setPointerPosition(pixelPosition);
		}

		do {
			clearChanged();
			organizeMarkers();
		} while (hasChanged());
		setChanged();
		notifyObservers(Global.MARKERS_UPDATE);
	}