New generation algorithm