allow some ids to be set by the caller, otherwise slugify name