public void Download() {
        // abort if nothing in queue
        if (DownloadQueue.size() == 0) {
            return;
        }

        // construct download url string
        String URLName = "http://api.eve-central.com/api/marketstat?usesystem=30000142";
        while (!DownloadQueue.isEmpty()) {
            URLName += "&typeid=" + DownloadQueue.poll();
        }
        try {
            URL url = new URL(URLName);
            BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
            String xmlfile = "";
            String line;
            while ((line = br.readLine()) != null) {
                xmlfile += line + "\n";
            }

            // STRIP EVE CENTRAL HEADER
            String ohneheader;
            ohneheader = substr(xmlfile, "<marketstat>", "</marketstat>");

            // BREAK DOWN INTO SINGLE ITEMS
            String[] items;
            String splitat = "</type>";
            items = ohneheader.split(splitat);

            // for each item in query
            for (String item : items) {
                // temporary data struct
                Price tmp = new Price();
                // item ID
                int itemID = Integer.parseInt(substr(item, "<type id=\"", "\">"));
                // buy values
                String buy = substr(item, "<buy>", "</buy>");
                tmp.buy.parse(buy);
                // sell values
                String sell = substr(item, "<sell>", "</sell>");
                tmp.buy.parse(sell);
                // all values
                String all = substr(item, "<all>", "</all>");
                tmp.buy.parse(all);
                // add to HashMap
                Data.put(itemID, tmp);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }