improved generation