user must select at least one material, because that's the whole point, right?