@Override
		public void run() {
			count++;
			
			if(automaticCars < 40) {
				Car c = new AutomaticCar(id++);
				c.setSpeed(45);
				c.setReceiveBehavior(new AutomaticReceive(c));
				c.setSendBehavior(new AutomaticSend(c));
				towerChannel.registerCar(c);
				automaticCars++;
			}
			if(manualCars < 50) {
				Car c = new ManualCar(id++);
				c.setSpeed(45);
				c.setReceiveBehavior(new ManualReceive(c));
				c.setSendBehavior(new ManualSend(c));
				towerChannel.registerCar(c);
				manualCars++;
			}
			
			/*if(automaticCars < 5){
				Car c = new AutomaticCar(id++);
				c.setSpeed(45);
				c.setReceiveBehavior(new ReceiveAdapter(c));
				c.setSendBehavior(new SendAdapter(c));
				towerChannel.registerCar(c);
				automaticCars++;
			}*/
			
			List<Car> cars = getRegisteredCars();
			
			for(Car c : cars) {
				int delta;
				if(c instanceof ManualCar && c.getDisplay().equals("Decrease speed"))
					delta = (int)(Math.random()*10) - 10;
				else 
					delta = (int)(Math.random()*10) - 4;
				c.setSpeed(c.getSpeed() + delta);
			}
			if(count == 5) {
				if (cars.size() > 0) {
					Car c = cars.get((int)(Math.random()*(cars.size()-1)));
					c.exit();
				}
				count = 0;
			}
			
		}