Break name into its own type.  Improved documentation