Singleton and Null Object Design Pattern - Low Level Design