Item 3: Singleton
Item 5 Avoid creating unnecessary object