private void load() {
		// Load main model, if file is present
		boolean haveOldData = false;
		File file = settings.getStaticFile();
		try {
			FileInputStream reader = new FileInputStream(file);
			XmlModelAdapter xml = new XmlModelAdapter();
			xml.readModel(reader, model);
			reader.close();
			haveOldData = true;
		} catch (FileNotFoundException e) {
			System.err.println("Initial data file " + file
					+ " is not found. Starting empty.");
		} catch (IOException e) {
			e.printStackTrace();
		}

		if (haveOldData) {
			file = settings.getStatusFile();
			try {
				FileReader reader = new FileReader(file);
				StatusFileModelAdapter adap = new StatusFileModelAdapter();
				adap.updateStatuses(reader, model);
				reader.close();
			} catch (FileNotFoundException e) {
				System.err.println("Status file " + file
						+ " is not found. Assuming UNKNOWN for everything.");
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

		courses = new ArrayList<CourseRec>(model.getCourses(source));
		Collections.sort(courses, new Comparator<CourseRec>() {
			@Override
			public int compare(CourseRec o1, CourseRec o2) {
				return o1.getName().compareTo(o2.getName());
			}
		});
		currentIndex = 0;
	}