factories are singletons now