Singleton converted to abstract class