fixed the factory pattern to return a class instead so we can support multiple instances more easily.