Builder, Singleton and Factory Method Design Patterns + Test Cases