updated generator