function drawDiagram(Parser $parser, PPFrame $frame)
{
    global $wgTitle;
    $sumEditing = 0;
    $pagesList = CDParameters::getInstance()->getPagesList();
    $pageWithChanges = array();
    foreach ($pagesList as $thisPageTitle) {
        $names = getPageEditorsFromDb($thisPageTitle);
        $changesForUsersForPage = getCountsOfEditing($names);
        $thisPageTitleKey = $thisPageTitle->getText();
        if ($thisPageTitle->getNsText() != "") {
            $thisPageTitleKey = $thisPageTitle->getNsText() . ":" . $thisPageTitleKey;
            // we can't use Title object this is a key with an array so we generate the Ns:Name key
        }
        $pageWithChanges[$thisPageTitleKey] = $changesForUsersForPage;
        $sumEditing += evaluateCountOfAllEdits($changesForUsersForPage);
    }
    $text = drawPreamble();
    foreach ($pageWithChanges as $thisPageTitleKey => $changesForUsersForPage) {
        $drawer = CDDrawerFactory::getDrawer($changesForUsersForPage, $sumEditing, $thisPageTitleKey);
        $text .= $drawer->draw();
    }
    $text .= "}</graphviz>";
    // $text = getPie($changesForUsers, $sumEditing, $thisPageTitle);
    $parser->disableCache();
    $parser->setTitle(Title::newFromText("Main_page"));
    $frame->getTitle(Title::newFromText("Main_page"));
    $text = $parser->recursiveTagParse($text, $frame);
    //this stuff just render my page
    return $text;
}