public List<SimulationResult> runSimulations(InputStream inputStream) {
		try (Scanner s = new Scanner(inputStream)) {
			final Bounds bounds = new Bounds(s.nextInt(), s.nextInt());
			s.nextLine();

			final List<SimulationResult> results = new ArrayList<>();

			while (s.hasNextLine()) {
				Explorer explorer = null;
				try {
					explorer = new Explorer(bounds, s.nextInt(), s.nextInt(),
							Direction.valueOf(s.next().trim()));
					s.nextLine();
					explorer.run(s.nextLine());
					results.add(SimulationResult.success(explorer));
				} catch (Exception e) {
					results.add(SimulationResult.error(explorer, e));
				}
			}

			return results;
		}
	}