Add Singleton
Mas refactoring