added generation algorithm module