facade design pattern
chain of Responsibility