Added ability to use an optional name for each type rather than the auto-generated one.