A little explanation of the Singleton software design pattern