There should be only one way of configuring
Used only for tests
Move as much as possible to base class
Move as much as possible to base class
Move as much as possible to base class
Better Singleton code