code: func NewScheme() *Scheme {
  	s := &Scheme{
  		gvkToType: map[unversioned.GroupVersionKind]reflect.Type{},
  		typeToGVK: map[reflect.Type][]unversioned.GroupVersionKind{},
  		converter: NewConverter(),
  		cloner:    NewCloner(),
  		// TODO remove this hard coded list.  As step one, hardcode it here so this pull doesn't become even bigger
  		InternalVersions: map[string]unversioned.GroupVersion{
  			"":                {},
  			"componentconfig": {Group: "componentconfig"},
  			"extensions":      {Group: "extensions"},
  			"metrics":         {Group: "metrics"},
  		},
  		MetaFactory: DefaultMetaFactory,
  	}
  	s.converter.nameFunc = s.nameFunc
  	return s
  }
docs: // NewScheme manufactures a new scheme.