supporting singletons (in progress).