@Override
    protected void download() throws Exception {
        int currPage = 1;
        boolean hasPrev = true;

        while(currPage <= this.totalPages && hasPrev) {
            String url = String.format(Constant.VOA_AS_IT_IS_URL, currPage);
            Util.print("Fetching info from %s...", url);

            Document doc = Util.getConnection(url).get();
            if (doc != null) {
                Element divContainer = doc.getElementById("ctl00_ctl00_cpAB_cp1_repeaterListDivContent");

                Element divPaging = divContainer.getElementById("ctl00_ctl00_cpAB_cp1_upperInfoContent");
                Element prevElement = divPaging.select("span[class=prev]").first();
                Util.print("prev-page: %s", prevElement);
                hasPrev = (prevElement != null);

                Elements divArticles = divContainer.select("div[class=archive_rowmm]");
                for (Element article: divArticles) {
                    Element a = article.select("a[href]").first();
                    if (a != null) {
                        try {
                            this.getDetails(a.attr("href"));
                        } catch(Exception e0) {
                            Util.print("+++ Something's wrong. Retry #1.");
                            try {
                                this.getDetails(a.attr("href"));
                            } catch(Exception e1) {
                                Util.print("+++ Something's wrong. Retry #2.");
                                try {
                                    this.getDetails(a.attr("href"));
                                } catch(Exception e2) {
                                    Util.print("+++ Something's wrong. Retry #3.");
                                    try {
                                        this.getDetails(a.attr("href"));
                                    } catch(Exception e3) {
                                        throw e3;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            Util.print("Done info from %s...", url);
            currPage++;
        }
    }