separate baseManager FactoryManager