private function glueTogether()
 {
     $u = (string) $this->baseURl;
     if (count($this->params)) {
         $params = array();
         foreach ($this->params as $target => $source) {
             $m = array();
             if (preg_match('/^_(\\w+)\\[([^\\]]+)\\]$/', $source, $m)) {
                 $source = $this->rd->get(strtolower($m[1]), $m[2]);
             }
             if ($source) {
                 $params[] = sprintf('%s=%s', $target, urlencode($source));
             }
         }
         if (strpos($u, '?') !== false) {
             $u .= '&' . implode('&', $params);
         } else {
             $u .= '?' . implode('&', $params);
         }
     }
     if ($this->user && $this->pass) {
         $u = str_replace('://', sprintf('://%s:%s@', $this->user, $this->pass), $u);
     }
     $u = str_replace('{urlScheme}', $this->context->getRequest()->getUrlScheme(), $u);
     $u = str_replace('{urlHost}', $this->context->getRequest()->getUrlHost(), $u);
     return $u;
 }