better generators and docs