Replace `first` with `parts.isEmpty()`