add motivation and some comments to Singleton