minor refactoring & include Singleton