public int hire(ArrayList<Person> workPool){
		SkillType active = holding.getRelevantSkill();
		if (active == null) return 0;	//no active skill is bad.
		workers.clear();
		int capacity = holding.getTaskAdjustedCapacity();
		
		for (Person worker:workPool){
			//do an insertion Sort.
			ListIterator<Person> i = workers.listIterator();
			while(i.hasNext()){
				Person next = i.next();
				if(next.getSkill(active) > worker.getSkill(active)){
					i.previous();
					i.add(worker);
					break;
				}
			}
			if(!i.hasNext()){	//we reached the end of the list.
				i.add(worker);
			}
			if (workers.size() > capacity) workers.pop();
		}
		for(Person hired:workers){
			workPool.remove(hired);	//happens in corp loop. No error!
		}
		return workers.size();
	}