generate_password added