code: public boolean add(Robot parent, Robot child) {
  	Point newPosition = getReferenceField(parent, 1);
  	if (isOccupied(newPosition)) {
  	    return false;
  	} else {
  	    if (child.getData().getGeneration() != parent.getData().getGeneration() + 1) {
  		throw new IllegalArgumentException("Child robot is not a direct descendant of this parent");
  	    }
  	    addCommon(child, newPosition);
  	}
  	return true;
      }
docs: Adds a new robot to the world in the reference field of the parent. The child becomes owned
  by <i>this</i> object
  
  @param parent the creating robot
  @param child the newly created robot
  @return true if the child was added successfully; false if there was a normal problem with
  the addition.
  @throws IllegalArgumentException if child is not a direct descendant of parent