implemented Facade