modify facade pattern