public void processAction(Action action) {

		System.out.println("Performing " + action + " at time "
				+ (Calendar.getInstance().getTimeInMillis() / 1000));

		// if we want to add a server and have no more
		if (action == Action.ADD_SERVER && getFreeServerCount() == 0) {
			System.out.println("No more servers to add!");
			return;
		}
		// if we want to remove a server and only have 1
		else if (action == Action.REMOVE_SERVER && getActiveServerCount() <= 1) {
			System.out.println("Can't have less than 1 server.");
			return;
		}
		// add a server
		else if (action == Action.ADD_SERVER) {
			System.out.println("Adding server.");
			Server s = getAvailableServer();
			if (s != null) {
				s.startServer();
			} else {
				System.err.println("Unable to add server.");
			}
		}
		// remove a server
		else if (action == Action.REMOVE_SERVER) {
			System.out.println("Removing server.");
			Server s = getActiveServer();
			if (s != null) {
				
				// TODO: disable
				
				s.stopServer();
				
				// TODO: set a timeout after which this server should be removed
			} else {
				System.err.println("Unable to remove server.");
			}
		}
		
		printServerStatus();
		System.out.println("Free server count " + getFreeServerCount());
		System.out.println("Active server count " + getActiveServerCount());
		System.out.println("Disabled server count " + getDisabledServerCount());

	}