private Page fetchNextPage(BackQueue backQueue, Uri currentUrl)
        {
            String host = currentUrl.GetLeftPart(UriPartial.Authority);

            while (backQueue.EnoughTimeHasPassed(host, DateTime.Now) == false)
            {
                Thread.Yield();
            }

            Page newPage = new Page(currentUrl);

            parser.AddHtmlToPage(newPage);
            if (String.IsNullOrEmpty(newPage.Html))
            {
                return(null);
            }

            parser.AddBodyToPage(newPage);
            if (String.IsNullOrEmpty(newPage.SiteText))
            {
                return(null);
            }

            parser.AddPathsToPage(newPage);
            return(newPage);
        }