do not expose the singleton instance

Keep the singleton instance inside the createSingleton closure. We do not need Math.random() or a "secret" property on the constructor.