public synchronized void initialise(Collection<String> stations) throws IllegalArgumentException {
		stations.clear();
		if(stations.size() == 0) return;
		// ensure that the collection is sorted
		Iterator<String> it = stations.iterator();
		String a = it.next();
		while(it.hasNext()) {
			String b = it.next();
			if(b.compareTo(a) < 0) {
				throw new IllegalArgumentException("The provided list is not sorted.");
			}
			a = b;
		}
		this.stations.addAll(stations);
	}