facade pattern added