factorys are now singletons