@Override
	public int compareTo(Object arg0) {
		Name name = (Name) arg0;
		if(equals(name)){
			return 0;
		} else {
			String[] otherNames = name.getNames().toArray(new String[0]);
			String[] thisNames = tokens.toArray(new String[0]);
			for(int i = 0; i < thisNames.length && i < otherNames.length; i++)
			{
				int value = thisNames[i].compareTo(otherNames[i]);
				if(value != 0)
					return value;
			}
			return thisNames.length - otherNames.length;
		}
	}