rename Singleton to SupSingleton to sidestep conflicts with ruby's Singleton