facade and decorator