private RevisionHandler handleRequest(final String req) throws StorageException {
		assert (req != null): "Supplied request is null";
		try {
			final URL requestURL = new URL(jhilbert.Main.getMediaWikiApi() + "?format=xml&action=query&" + req);
			final URLConnection request = requestURL.openConnection();
			final SAXParser parser = parserFactory.newSAXParser();
			final RevisionHandler handler = new RevisionHandler();
			request.connect();
			parser.parse(request.getInputStream(), handler);
			return handler;
		} catch (MalformedURLException e) {
			throw new StorageException("Malformed request", e);
		} catch (SocketTimeoutException e) {
			throw new StorageException("Timeout while talking to MediaWiki API", e);
		} catch (IOException e) {
			throw new StorageException("I/O error" + e.getMessage(), e);
		} catch (ParserConfigurationException e) {
			throw new StorageException("Unable to create parser", e);
		} catch (SAXException e) {
			throw new StorageException("Error parsing MediaWiki reply", e);
		}
	}