Break out Singleton into its own base class