Refactored the Generator
Required Singleton