added Facade Pattern