Implemented Singleton properly and not the half-ass way

The enum way is the best way.