better Singleton design pattern.