Better description and some design fixes.