moving singleton out to factory