public static void main(String[] args) {
   ExecutorService exec = Executors.newCachedThreadPool();
   DelayQueue<Event> queue = new DelayQueue<Event>();
   GreenhouseControls gc = new GreenhouseControls(queue);
   gc.addEvent(gc.new Bell(900));
   Event[] eventList = {
     gc.new ThermostatNight(0),
     gc.new LightOn(200),
     gc.new LightOff(400),
     gc.new WaterOn(600),
     gc.new WaterOff(800),
     gc.new ThermostatDay(1400)
   };
   gc.addEvent(gc.new Restart(2000, eventList));
   if (args.length == 1) gc.addEvent(new GreenhouseControls.Terminate(new Integer(args[0]), exec));
   exec.execute(gc);
 }