generation works
improved