now creates spectral groups on demand instead of always by default.
now caches group references and if a group is "double added", the
first one is returned
use the name "candidates_X" for datasets in the candidates group
build the candidates writer