public void start() {
	  if (applet != null) {
		  applet.start();
		  return;
	  }
	  
	  if (gameUpdaterStarted) return;
	  
	  Thread t = new Thread() {
		  GameBuilder gamebuilder = new GameBuilder();
		  public void run() {
			  gamebuilder.run();
			  try {
				  if (!gamebuilder.fatalError)
					  replace(gamebuilder.createApplet());
			  }catch (ClassNotFoundException e) {
				  e.printStackTrace();
			  } catch (InstantiationException e) {
				  e.printStackTrace();
			  } catch (IllegalAccessException e) {
				  e.printStackTrace();
			  }
		  }
	  };
	  
	  t.setDaemon(true);
	  t.start();

	  t = new Thread() {
		  public void run() {
			  while (applet == null) {
				  repaint();
				  try {
					  Thread.sleep(10L);
				  } catch (InterruptedException e) {
					  e.printStackTrace();
				  }
			  }
		  }
	  };
	  
	  t.setDaemon(true);
	  t.start();

	  gameUpdaterStarted = true;
  }