Isn't the second call to `compareTo()` redundant, especially since `name` is immutable?  In other words, why couldn't we simply return `last`?