Fix initialization and range for spares. And since some spares need initialization, the basic spare type is made public.