Users can override generated name for custom naming

this should happen in a `before_create` hook so that you don't have to do the wonkiness below. usually hooks like that should be avoided, but in this case, where you have to generate a token for every single object, I think it is called for