introducing HierarchySingletonStrategy