We are using this public keyword argument to keep track of some internal state. It really shouldn't be visible to the user because there should be no reason why a user would want to set this to False. We should find another way to keep track of whether the label dictionary has already been created once.