Can you please describe (in the docstring) if it is _necessary_ to have ``SoCo`` singletons (why?) or if its just an optimization?