private Comic prepareModel() {
		File[] comicFileName = selectedDir.listFiles(new FileFilter() {
			@Override
			public boolean accept(File pathname) {
				return pathname.getName().equals("comic.xml");
			}
		});
		if (comicFileName.length == 1) {
			try {
				final Comic from = (Comic) (XmlUnmarshaller.startUnmarshallOf(Comic.class).from(comicFileName[0]));
				List<File> images = getImages(from.getImages().getNamePattern());
				Collections.sort(images);
				if (images.size() != from.getScreens().size()) {
					App.EVENT_BUS.post(new ErrorEvent("Liczba obarazów inna niż zadeklarowana w pliku!", null));
//					return from;
				}
				Collections2.filter(images, new Predicate<File>() {
					@Override
					public boolean apply(File input) {
						String number = input.getName().replaceAll("\\D", "");
						Screen screenByIndex = from.findScreenByIndex(number);
						screenByIndex.setIndex(Integer.parseInt(number));
						screenByIndex.setImage(input);
						return true;
					}
				}).size();
				return from;
			} catch (JAXBException e) {
				e.printStackTrace();
			}
		}
		Comic comic = new Comic();
		comic.initDefaults();
		List<File> images = getImages(null);
		Collections.sort(images);
		int i = 0;
		for (File image : images) {
			Screen screen = new Screen();
			screen.setBgcolor("#ffffff");
			screen.setImage(image);
			screen.setIndex(i);
			comic.addScreen(screen);
			i++;
		}
		return comic;
	}