model with facade pattern