public final void go()
{

 scache daemon=new scache(ourport,ouraddress);
 Thread saver = new Thread(this);
 saver.start(); /* start background directory saver... */

 new shutdownhook(saver);

 /* refresh pattern hack */
 if(refresh!=null && -1==isInRegexpArray("*",refresh))
 {
  refresh=addRegexpToArray("*",refresh,false);

  /* natahnout ! */
  reloadage=incLongArraySize(reloadage);
  minage=incLongArraySize(minage);
  maxage=incLongArraySize(maxage);
  lastmodf=incFloatArraySize(lastmodf);
  expireage=incLongArraySize(expireage);
  redirage=incLongArraySize(redirage);

  /* nastavit hodnoty */
  reloadage[reloadage.length-1]=reload_age;
  minage[minage.length-1]=min_age;
  maxage[maxage.length-1]=max_age;
  lastmodf[lastmodf.length-1]=lmfactor;
  expireage[expireage.length-1]=expire_age;
  redirage[redirage.length-1]=redir_age;
 }

 if(clear_flags_on_start)
 {
   checkFlag(shutdownflag,true); // delete pending shutdown flag on start
   checkFlag(immediate_shutdownflag,true); // delete pending shutdown flag on start
 }
 new Thread(new ui()).start(); // run UI
 ConnectionHandler.init();     // run KeepAlive cleaner
 touch_flag(aliveflag);
 System.out.println(new Date()+" "+scache.VERSION+" ready on "+ourport+"/"+(ouraddress==null ? "*" : ouraddress.getHostAddress()));
 request.via_header=" 1.0 "+httpreq.visible_hostname+" ("+scache.VERSION+")";
 ouraddress=null; // GC IT!
 /* fallback FTP proxy to http_proxy */
 if(ftp_proxy==null)
 {
     ftp_proxy=http_proxy;
     ftp_proxy_port=http_proxy_port;
     ftp_proxy_auth=http_proxy_auth;
 }
 daemon.httpdloop(); // enter main loop
}