Add Facade and Factory Method