Singleton implementation
Merge branch 'singleton'