public synchronized int clickerConnected(String eid, InetAddress clickerAddress){
		GPerson gPerson = null;
		//first check if this person is already in the array
		for(GPerson person : clients){
			if(person != null && person.getEID().equals(eid)){
				gPerson = person;
			}
		}
		//else:
		//the person with this eid is connecting for the first time
		if (gPerson == null){

			//find first available clicker id for person
			for(int i = 0; i < clients.length; i++){
				if(clients[i] == null){
					gPerson = new GPerson(eid, clickerAddress, i);
					clients[i] = gPerson;
					break;
				}
				if(i == clients.length - 1){
					System.out.println("Error: No more room for clickers.");
				}
			}

			setChanged();
			notifyObservers();
		}
		// else, if a client connects, disconnects, 
		// then reconnects he can keep his old clicker_id and object.

		// we're going to pretend there's an authentication layer in the handshake
		// that validates eids. In real life we would call some utexas.edu api.

		return gPerson.getClickerID();
	}