added generate_codename